有数百万个用户帐户,我想将他们的数据分布到数据库的 N 个表(user_1,user_2,...,user_N)中。用户帐号由 3~8 个字符组成。 所以,我想要一个返回表后缀的函数,如
int getTableSuffix(String userAccount);
结果是从1到N均匀分布。
你知道这个工作有什么便宜的哈希算法吗?
最佳答案
您可以获取前 1-3 个字符的 ascii 值并找到它们的乘积以返回您的号码。
或者,您实际上可以使用这些字符作为您的表前缀,例如。 Users_AA、Users_AB 等
但是,您使用什么数据库来存储这些数据?在大多数现代数据库中,您应该不需要创建多个表来存储相同的数据。即使有数百万条记录。表上的良好索引应该足以解决您可能遇到的任何性能问题。
关于algorithm - 将用户账号分配到N张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/824754/