【发布时间】:2011-04-26 16:14:00
【问题描述】:
我想知道当我在 MySQL 中将 UUID 用作我的主键时,会对服务器性能产生何种影响或影响多少。
【问题讨论】:
标签: mysql performance uuid
我想知道当我在 MySQL 中将 UUID 用作我的主键时,会对服务器性能产生何种影响或影响多少。
【问题讨论】:
标签: mysql performance uuid
我想你正在使用 InnoDB(无论如何你应该......)
请阅读高性能 MySQL 2ed, p.117 中的以下章节:http://books.google.com.hk/books?id=BL0NNoFPuAQC&lpg=PA117&ots=COPMBsvA7V&dq=uuid%20innodb%20clustered%20index%20high%20performance%20mysql&pg=PA117#v=onepage&q&f=false
一般来说,从性能角度来看,UUID 是一个糟糕的选择(由于聚集索引),他们有一个基准来证明这一点。
【讨论】:
UUID 的长度为 36 个字符,即 36 个字节。 INT为4字节,有TINYINT、MEDIUMINT、BIGINT的变体,都在36字节以下。
因此,对于您插入的每条记录,您的索引都会分配更多空间。 此外,与递增整数相反,计算 UUID 需要更多时间。
至于它对系统的影响有多大,很难给出实际数字,因为有多种因素——系统的负载、硬件等等。
【讨论】: