大数定律和MySQL 静态分片

sharding 策略大抵有二:静态和动态、静态分片优点:简单、开发成本低、维护花费小
常见的静态分片方式有哈希函数和取模、但这样就暴露了一个缺点(PS:还有很多缺点呢):
这个缺点是这样的:

采用静态分片、我们就无法自定义数据放到哪个分片、如果、存在一些数据比其他数据活跃
而且、很不凑巧、这些激进的数据都被分配到同一个分片、这时、头就大了
我们无法通过转移热点数据来平衡负载

此时、借助”大数定律”、什么是”大数定律”呢?一言譬之为:
“足够大的样本能几乎肯定反应总体的真实组成”、详尽原理大家自行Google

如果每个分片的数据量却分得比较小、根据”大数定律”、则会更容易将热点数据均摊到不同分片

当然、这样做可能会存在跨分片查询、取决于您如何tradeoff

标签