我们正在考虑使用UUID值作为MySQL数据库的主键。 插入的数据由数十个,数百个甚至数千台远程计算机生成,并以每秒100-40,000次的速度插入,我们永远不会进行任何更新。
数据库本身通常会在开始清除数据之前达到约50M条记录,因此既不是庞大的数据库,也不是微小的数据库。 我们还计划在InnoDB上运行,尽管如果有更好的引擎适合我们所做的事情,我们也可以改变这一点。
我们准备使用Java的Type 4 UUID,但在测试中发现了一些奇怪的行为。 首先,我们存储为varchar(36),我现在意识到我们最好使用binary(16)-虽然我不确定会好多少。
更重要的问题是:当我们有5000万条记录时,这些随机数据会严重损坏索引吗? 如果我们使用例如type-1 UUID,其中左侧位戳记,则是否更好? 或者也许我们应该放弃UUID,考虑自动增量主键?
我正在寻找关于将不同类型的UUID存储为MySQL的索引/主键时性能的普遍想法/提示。 谢谢!
数据库本身通常会在开始清除数据之前达到约50M条记录,因此既不是庞大的数据库,也不是微小的数据库。 我们还计划在InnoDB上运行,尽管如果有更好的引擎适合我们所做的事情,我们也可以改变这一点。
我们准备使用Java的Type 4 UUID,但在测试中发现了一些奇怪的行为。 首先,我们存储为varchar(36),我现在意识到我们最好使用binary(16)-虽然我不确定会好多少。
更重要的问题是:当我们有5000万条记录时,这些随机数据会严重损坏索引吗? 如果我们使用例如type-1 UUID,其中左侧位戳记,则是否更好? 或者也许我们应该放弃UUID,考虑自动增量主键?
我正在寻找关于将不同类型的UUID存储为MySQL的索引/主键时性能的普遍想法/提示。 谢谢!