我正在为一个需要从小规模开始但具有高度可扩展性的应用程序进行早期设计。我特别担心用户数据库,在这种情况下,它会有很高的 INSERT 和 UPDATE 负载,并且不太可能在单个主服务器上存活很长时间。
(虽然我的问题与任何特定的 RDBMS 无关,但作为记录,我们将使用 MySQL,而 MySQL Cluster 并不能真正满足我们的需求,因此我们需要使用库存 MySQL + 在这个解决方案上推出我们自己的解决方案InnoDB。)
我正在考虑基于用户名的哈希在 MySQL 主服务器之间分配用户的策略(加上用户未知的盐,就像对任何有趣的游戏增加保险一样)。我以前曾成功使用过这样的解决方案,但我自己从未设计/实现过。
我想要一些输入的是:
1) 合适的散列算法。我希望 SHA-1 甚至 MD5 可以很好地解决这个问题,因为加密安全性确实不是目标,但我不确定是否有其他算法可能具有此类问题的理想属性。快一点的东西也可能很好。
2)任何人都可以想到的任何主要警告。(我已经非常清楚潜在的连接池问题,以及向池中添加新主节点和迁移受影响用户的乐趣。)
谢谢!