我们正在考虑使用UUID值作为MySQL数据库的主键.插入的数据是从数十台、数百台甚至数千台远程计算机生成的,并且以每秒100-40000次的速度插入,我们永远不会进行任何更新.
在我们开始挑选数据之前,数据库本身通常会有大约5000万条记录,因此不是一个庞大的数据库,但也不是一个小数据库.我们还计划在InnoDB上运行,不过如果有更好的引擎,我们愿意改变这一点.
我们已经准备好使用Java的Type4UUID,但在测试中,我们看到了一些奇怪的行为.首先,我们将存储为varchar(36),我现在意识到使用二进制(16)会更好——尽管我不确定会有多好.
更大的问题是:当我们有5000万条记录时,这些随机数据对指数的影响有多严重?例如,如果我们使用类型1 UUID,其中最左边的位有时间戳,我们会更好吗?或者我们应该完全抛弃UUID并考虑自动增量主键?
我正在寻找关于不同类型UUID在MySQL中作为索引/主键存储时的性能的一般 idea /提示.谢谢