algorithm - 将用户账号分配到N张表

标签 algorithm hash distribution

有数百万个用户帐户,我想将他们的数据分布到数据库的 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/

相关文章:

mysql - Perl取消引用散列散列数组中的单个元素

c++ - 获取 C++ 类的字节表示

matlab - 如何根据给定的 CDF 计算逆高斯分布?

arrays - 在无限排序数组中找到一个元素

algorithm - 如何在单个循环中对数组进行排序?

C++排序算法

java - 在java中尝试MD5哈希

r - 两片正态(或 split 正态)分布的密度

open-source - 我做了一些可能对社区有用的东西。怎么办?

algorithm - O(nk) 和 O(n+k) 在时间复杂度上有什么区别?