分片的策略是什么
目前通用的分片策略分为根据范围分片、根据Hash值分片、根据Hash值及范围混合分片(先按照范围分片,再根据Hash值取模分片)这3种。
以上3种分片策略到底应该选择哪个?只需要考虑一点:假设之后数据量变大了,需要把表分得更细,此时保证迁移的数据尽量少即可。
根据Hash值分片时,一般建议拆分成个表。
比如分成8张表,数据迁移时把原来的每张表拆一半出来组成新表,这样数据迁移量就小了。
在本方案中,根据user_ID的Hash值按32取模,把数据分到32个数据库中,每个数据库再分成16张表。
简单计算一下,假设每天订单量为1000万,则每个库日增1000万/16=31.25万,每个表日增1000万/32/16=1.95万,3年后每个表的数据量就是2000万左右,仍在可控范围内。