企业IT架构转型之道:阿里巴巴中台战略思想与架构实战 8.3分
读书笔记 第5章 数据拆分实现数据库能力线性扩展
元勰
为了避免在线交易数据库的数据的增大带来数据库性能问题,淘宝将3个月内的订单数据保存进在线交易数据库中,超过3个月的订单会归档到后端专门的归档数据库。

解决大表查询慢的问题。这样解决应该是最佳的。每个时期一个数据库。仅提供查询功能。不可更改。简单优雅的解决查询效率问题。

tddl的数据处理流程,和大型网站构建和Java中间件实战那本书讲到的数据层的实现一致。主要都有sql解析,规则计算,sql改写,选择数据源,返回结果这么几个步骤。下图中sql改写对应的是表名替换,选择数据源对应的是选择groupDs执行sql。后面主要是tddl做了一些其他的操作。

TDDL提供了以下优点: 数据库主备和动态切换。 带权重的读写分离。 单线程读重试。 集中式数据源信息管理和动态变更。 支持MySQL和Oracle数据库。 基于JDBC规范,很容易扩展支持实现JDBC规范的数据源。 无Server、client-jar形式存在,应用直连数据库。 读写次数,并发度流程控制,动态变更。 可分析的日志打印,日志流控,动态变更。

tddl和mycat最大的差别大概就是无server,client-jar方式存在吧。更加方便。

分库分表之后,对于查询性能的解决。才有异构索引表的方式解决的。如下图:

买家查询的时候通过异构索引表单表查询获得订单id,再通过订单id直接取模运算获取对应的表进行查询。并且是主键,速度快。异构索引表的数据是通过精卫填海这个数据转移平台实现的。而不是直接对应用的高度依赖。为啥淘宝会选择这么做呢,很好奇。原因还是不得而知了。

0
《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战》的全部笔记 41篇
豆瓣
免费下载 iOS / Android 版客户端