【问题标题】:how can affect performance when I use UUIDs as my primary keys in MySQL当我在 MySQL 中使用 UUID 作为主键时如何影响性能
【发布时间】:2011-04-26 16:14:00
【问题描述】:

我想知道当我在 MySQL 中将 UUID 用作我的主键时,会对服务器性能产生何种影响或影响多少。

【问题讨论】:

    标签: mysql performance uuid


    【解决方案1】:

    我想你正在使用 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 是一个糟糕的选择(由于聚集索引),他们有一个基准来证明这一点。

    【讨论】:

    • 是的,我正在使用 InnoDB……我工作的公司中的一些应用程序使用 UUID 作为主键,但我不确定我是否应该继续使用它。我想我不需要 UUID 密钥,所以也许我会停止使用它们。
    【解决方案2】:

    UUID 的长度为 36 个字符,即 36 个字节。 INT为4字节,有TINYINT、MEDIUMINT、BIGINT的变体,都在36字节以下。

    因此,对于您插入的每条记录,您的索引都会分配更多空间。 此外,与递增整数相反,计算 UUID 需要更多时间。

    至于它对系统的影响有多大,很难给出实际数字,因为有多种因素——系统的负载、硬件等等。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-21
    • 2017-10-21
    • 1970-01-01
    • 2012-12-20
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    相关资源
    最近更新 更多