分片数目即将逻辑库切割为物理库的数量,在逻辑库时确定后无法更改。通常选择分片数目需要遵循如下原则。
- 原则1:分片数量尽量少,因为一个查询SQL 跨分片越多,则总体性能越差,虽然要好于所有数据在一个分片的结果。只在必要的时候进行扩容,增加分片数量。分片尽量均匀分布在多个存储节点上。
- 原则2:能不分片就不分片,800万以内的表,不建议分片,通过合适的索引,读写分离等方式,可以很好的解决性能问题。
- 原则3:不到800 万但跟大表(超800 万的表)有关联查询的表也要拆分,在此称为大表关联表。大表关联表如何拆:小于100 万的使用全局表;大于100 万小于800 万跟大表使用同样的拆分策略;无法跟大表使用相同规则的,可以考虑分步骤查询,不用关联查询,或者使用全局表。