---------------------------------------------
data slice
---------------------------------------------
单节点数据库 存储容量限制,io瓶颈,查询性能问题
将单节点数据库的数据分散存放到多个节点上面,可以存储更多数据,支撑更高的并发
阿里规范
【推荐】单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表
说明 如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表
---------------------------
垂直切分 - 按功能模块分库
优点
数据库的拆分简单明了,拆分规则明确
应用程序模块清晰明确,整合容易
数据维护方便易行,容易定位
缺点
跨库表关联无法在数据库完成,只能在后台完成
跨库事务需要解决
存在跨库分页
---------------------------
横向切分 - 按某个字段的值 分表
把表里的数据行 按照某个字段的某种规则 分散到多个库的同一个表里
优点
解决了单表数据量过大时的性能问题
应用程序端整体架构改动相对较少
容易扩展
缺点
切片规则得根据业务来
数据维护难度有所增加
手工定位数据更困难
跨节点合并排序分页问题
多数据源管理问题
---------------------------------------------