数据分片是用于扩展数据库最常见的技术手段。
分片是将大数据表分解为较小的表的过程,这些分片分布在多个数据库集群节点上。
分片可以是水平分片(按行分),也可以垂直分片(按列分)。
分片算法
哈希分片
首先获取分片键,然后根据特定的哈希算法计算它的哈希值,最后使用哈希值确定数据应被防置在那个分片中。
比较适合随机读写,不利于范围扫描。
范围分片
根据数据值或键空间的范围对数据进行划分,相邻的分片键更有可能落入相同的分片上。
非常适合进行范围查找,但随机读写性能较弱。
融合算法
上层使用哈希分片,在分片内部则按顺序存储。
地理位置算法
一般用于NEWSQL,提供全球范围内分布数据的能力。
数据被映射到特定的分区,然后在给定区域内,使用哈希或范围分片对数据进行分片。
比如:根据用户表的国家列,将其映射到就近的区域内。
手动分片 vs 自动分片
手动分片:设置静态规则来根据分片算法将数据分散到数据库节点。缺点是数据分布不均匀
自动分片:自动化的、弹性的分片
版权声明:本文为qq_37813928原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。