分布式数据库30讲
王磊
光大银行首席数据架构师
新⼈⾸单¥19.9
2360 人已学习
课程目录
已更新 21 讲 / 共 33 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词|为什么要学习分布式数据库?
免费
基础篇 (8讲)
01|什么是分布式数据库?
02|强一致性:那么多数据一致性模型,究竟有啥不一样?
03|强一致性:别再用BASE做借口,来看看什么是真正的事务一致性
04 | 架构风格:NewSQL和PGXC到底有啥不一样?
05 | 全局时钟:物理时钟和逻辑时钟你Pick谁?
06 | 分片机制:为什么说Range是更好的分片策略?
07 | 数据复制:为什么有时候Paxos不是最佳选择?
08 | 基础篇大串讲:重难点回顾+思考题答疑+知识全景图
开发篇 (12讲)
09|原子性:2PC还是原子性协议的王者吗?
10 | 原子性:如何打破事务高延迟的魔咒?
11|隔离性:读写冲突时,快照是最好的办法吗?
12 | 隔离性:看不见的读写冲突,要怎么处理?
13 | 隔离性:为什么使用乐观协议的分布式数据库越来越少?
14 | 隔离性:实现悲观协议,除了锁还有别的办法吗?
15 | 分布式事务串讲:重难点回顾+思考题答疑+知识全景图
16 | 为什么不建议你使用存储过程?
17 | 为什么不建议你使用自增主键?
18 | HTAP是不是赢者通吃的游戏?
19 | 查询性能优化:计算与存储分离架构下有哪些优化思路?
20 | 关联查询:如何提升多表Join能力?
分布式数据库30讲
15
15
1.0x
00:00/00:00
登录|注册

19 | 查询性能优化:计算与存储分离架构下有哪些优化思路?

王磊 2020-09-21
你好,我是王磊,你也可以叫我 Ivan。
我在第 4 讲介绍架构风格时曾经提到过,分布式数据库的主体架构是朝着计算和存储分离的方向发展的,这一点在 NewSQL 架构中体现得尤其明显。但是计算和存储是一个完整的过程,架构上的分离会带来一个问题:是应该将数据传输到计算节点 (Data Shipping),还是应该将计算逻辑传输到数据节点 (Code Shipping)?
从直觉上说,肯定要选择 Code Shipping,因为 Code 的体量远小于 Data,因此它能传输得更快,让系统的整体性能表现更好。
这个将 code 推送到存储节点的策略被称为“计算下推”,是计算存储分离架构下普遍采用的优化方案。

计算下推

将计算节点的逻辑推送到存储节点执行,避免了大量的数据传输,也达到了计算并行执行的效果。这个思路还是很好理解的,我们用一个例子来具体说明下。
假如有一张数据库表 test,目前有四条记录。
我们在客户端执行下面这条查询 SQL。
select value from test where cond=’C1’;
计算节点接到这条 SQL 后,会将过滤条件“cond=‘C1’“下推给所有存储节点。
存储节点 S1 有符合条件的记录,则返回计算节点,其他存储节点没有符合的记录,返回空。计算节点直接将 S1 的结果集返回给客户端。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《分布式数据库30讲》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥19.9
立即订阅
登录 后留言

精选留言(4)

  • myrfy
    分区内将数据排序好,返回计算节点,计算节点只需要对排序列表做合并即可。
    2020-09-21
    2
  • 扩散性百万咸面包
    截取这一段:写操作的延迟更长,因为任何情况下索引应该与数据保持一致,如果同分布,那么数据变更时可以通过本地事务保证,但在全局索引下就变成了一个分布式事务,代价当然更高了。

    想问:是不是所有的写事务都要立刻维护索引表呢?感觉这样的代价太大了,优化成异步后台线程来处理可能好一些。

    作者回复: 这个肯定不行,刚刚写入的数据可能会查不出来。前面为了数据一致性做了那么多努力不就白费了吗

    2020-09-21
  • licl1008
    老师 有个问题请教一下 当分片分裂是 新分片的区间起始值不是会改变吗,按照前缀匹配逻辑,那索引key还是要重新构建的吧
    2020-09-21
  • haijian.yang
    期待老师多分享 NewSQL 的知识。
    作为创业公司来说,现在用 NewSQL 成本还是挺高的(资源成本、运维成本等),期待未来可以像 MySQL 这样的传统数据库一样具备很好的性价比。
    2020-09-21
收起评论
4
返回
顶部