🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 分库 对数据库进行拆分从而提高数据库写入能力即分库 数据库分库分为垂直切分和水平切分 * 垂直切分:按照业务模块来划分出不同的数据库,而不是像早期一样将所有的数据表都放到同一个数据库中; 垂直切分的依据原则是:将业务紧密,表间关联密切的表划分在一起,例如同一模块的表 * 水平切分:将同一个库按照数据的某一维度拆分为多个库 ### Sharding存在的问题 1. 事务问题 使用分布式事务来解决,比如 XA 接口 2. 连接 可以将原来的连接分解成多个单表查询,然后在用户程序中进行连接 3. ID 唯一性 使用全局唯一 ID(GUID) 为每个分片指定一个 ID 范围 分布式 ID 生成器 (如 Twitter 的 Snowflake 算法)