我想我最好不要在没有任何实验的情况下猜测这个问题。
我们计划添加一个新列作为代码
代码需要具备以下功能:
我打算只使用UUID。
create table code(
id char(36),
unique index index1 (id)
) type=innodb;
我们的操作行为:
现在我对性能有点担心。我们的数据库中已有400K行。在未来它可能会增长到10M或30M。
您有任何建议或看到任何问题吗?
BTW:我无法使用自动递增的int,因为它没有随机化。
答案 0 :(得分:0)
继续。你不会在使用mysql和UUID时遇到任何问题。
随机生成的UUID有足够的状态,某些没有冲突。 (事实上它仍然是一个偶然的机会,但是在30M条目的情况下它超过10 ^ 31。)
另一方面:当你可以轻松地使用SecureRandom只生成16个字节的值并使用它们时,为什么还要使用uuid(将你的随机分为5组,根本没有任何意义)呢?
根据这个答案:How to store uuid as number?将它们存储在mysq中的二进制文件中会更快。
您也希望阅读此内容:UUID performance in MySQL?
使用mysql时,您应该考虑备份的概念。 Mysql可以轻松处理大数据库,但导出/导入30M行可能需要一些时间。
对于mysql行限制,请参阅此问题:How many rows in a database are TOO MANY?
答案 1 :(得分:-1)
我建议不要在这些情况下使用MySQL(至少不是你主动搜索的主存储器)。
有许多不同的其他技术,例如:
这些工具可用于快速搜索大数据集。上面看起来有点过分你可能只是使用一个NoSQL dbs,它会为你提供更多的性能。
有大量文章比较所有这些之间的性能和限制。