1. 垂直切分
冷热数据切分
按照业务进行拆分
优点:
解决系统业务层面耦合,业务清晰
便于开发运维人员维护,扩展,监控等
提升磁盘IO,查询效率
缺点:
表join过多导致sql查询复杂度提升
随着业务的开展依然可能存在单表过大的问题
分布式问题
2 水平切分
按照时间切分
RANGE(根据范围进行切分)
地理区域切分
Hash取模(使用较多)
优点:
1. 不存在单库数据量过大、高并发的性能瓶颈,提升系统稳定性和负载能力
2.应用端改造较小,不需要拆分业务模块
3. “冷热数据分离”实现方案
缺点:
1. 跨分片事务难以保证2. 跨分片的复杂查询如join关联查询3. 数据多次扩展难度和维护量极大