模97

一般在开发大型系统的时候,都免不了要分库分表,一种常见的分表方案,就是按照用户的id来进行分库分表。

我们的产品id,是数字,因为传统和一些习俗原因,很多数字对中国人有着特殊含义。比如大家不喜欢4和喜欢8,当然只是个例子。然后我们项目开发就遇到了一些麻烦,就4和8这个例子来说,就会产生这么一个麻烦。如果按照模100分表,那么4号表里是空的,8号表里压力很大。然后,就有了各种办法,比如模256。再比如,md5以后,取后两位。这两种都是分了256个表了。

结果有一天,我看到一个系统,分表方案是模97。我就觉得这个数字很蹊跷,问了下开发。这个97很完美地解决了4和8那个案例。原来,这个97是个素数。我有一种当头一棒的感觉,原来如此啊……