整体分类
mysql+分布式 proxy 扩展
- 数据强一致性
- mycat + pxc
- 数据不要求强一致性
- mycat + replication
- 数据强弱一致性都要求
- 使用 pxc 集群和 replication 集群
- 如果需要跨两种集群进行查询操作
- 可以使用同步中间件(比如
kettle
) - 将 pxc 集群的数据同步到 replication 集群中,由后者在自己的集群中做查询
- 可以使用同步中间件(比如
- 多种集群分片同事务
- 分布式事务,利用消息中间件模拟事务
数据归档,冷热数据分离
- MongDB 兼顾读写
- TokuDB 是 mysql 的一个引擎
mysql+cache 高并发架构
- cache 来撑高并发
mysql + 小文件系统
- 16 mb 以下文件,用 Binary BSON 存储
- mongdb 集群
mysql + infobright 统计分析架构
- 数据分析
业务出发
只读系统
- 数据同步要求很低
- mysql replication 集群 或者 mongdb 集群 + redis 集群优化读操作
读写系统
- 数据一致性不高
- 同只读系统一样
- 数据一致性高
- mysql pxc 集群
表类型出发
配置表
- 存放配置信息和字典信息
- 优化点: 读单表走 redis,表连接才走 db
状态表
- 业务实体的状态信息
- 该分片的分片,否则定义为 mycat 的全局表
日志表
- 业务实体的状态变化记录
- 写入性能要求高,使用 mysql replication 集群 or mongdb 集群
归档表
- 业务实体的冷数据
- mongdb 集群或者 TokuDB 集群
统计数据表和统计结果表
表优化
表拆分
- 业务字段多,数据量大时,可以进行关联字段和业务字段的拆分
- 关联字段转为索引表,向外提供表连接操作
- 业务字段转为内容表,存储大部分数据
- 作用到集群
- 先看是否为归档数据
- 其中索引表和内容表需要进行 父子表 关联,放在同一个分片中