本文章是在学习分库分表时记录随笔与灵感的文章,因此可能会显得比较杂乱。该文章持续更新,主要自己用,并希望能给大家带来一定的灵感。
- 分库分表时,对数据量大,业务压力比较大的表进行分库分表,例如订单表,订单明细表。对业务量不大且变化很小的表,可以采用广播表的方案,利用部分冗余来减少系统可能出现的跨库事务
- 对于需要分库分表的数据表,根据业务情况判断是否需要在表中添加额外的字段作为分库键与分表键。
- 若数据表添加分库键与分表键,对于分库键字段和分表键字段的取值,不仅要考虑生成路由时的负载问题
- 若数据表添加分库键与分表键,要考虑大量数据查询时,使用这两个字段的效率问题
- 若数据表添加分库键与分表键,并给这两个字段添加索引时,要考虑这两个字段的取值问题,为提高查询效率,字段值最好能不重复,为提高数据添加时的效率,最好使取值递增。
- 使用范围分片策略可以使数据库集群水平扩展,但可能会产生热数据节点,并发高时,热数据节点会成为集群的性能瓶颈。
- 离散分片能避免热数据节点的问题,但后期集群扩容需要进行数据迁移。
- 探究一致性hash能否在数据库集群中使用。