一.分库分表
1.分库分为垂直分库和水平分库,一般情况下选择水平分库(个人觉得针对领域模型做的微服务可以垂直分表),
水平分库 一般会以区域和时间的维度来分。
2.分表分为垂直分表贺水平分表, 垂直分表很少见,一般选择水平分表,如比订单表可以按月份分
二.表分区
分库可能会涉及跨库查询的问题,分表也也涉及跨表查询等问题,所以最好的方式的是表分区。
1. range 范围分区,比如电商订单表 可以按时间分区
2. list分区(我的理解类似于枚举值), 比如电商订单表 可以按区域分区 、订单类型分区、订单状态分区等
3. hash分区,一般不用
4. key分区,一般不用
5.复合分区,一般使用range和list分区结合
6.LIST分区和RANGE分区非常的相似,主要区别在于LIST是枚举值列表的集合,RANGE是连续的区间值的集合
三、数据库优化思想
大库化小库,小库化没有库(缓存)
大表化小表,小表化没有表。