首页 >数据库 >mysql教程 >MySQL 中的 INT 与 VARCHAR 主键:数据类型真的会影响性能吗?

MySQL 中的 INT 与 VARCHAR 主键:数据类型真的会影响性能吗?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-18 08:53:10760浏览

INT vs. VARCHAR Primary Keys in MySQL: Does Data Type Really Impact Performance?

MySQL 中 INT 与 VARCHAR 主键的性能影响

围绕 INT 和 VARCHAR 作为主键的最佳选择的争论供参考MySQL 中的列表一直是开发人员讨论的话题。一些人认为 INT 由于其数字性质而提供了卓越的性能,而另一些人则认为 VARCHAR 提供了引用信息的直接表示。

为了解决这个问题,我们对各种表配置和查询类型进行了全面的性能测试。我们的研究结果表明,用于引用列表时,INT 和 VARCHAR 主键之间的性能差异可以忽略不计。

实验设置

  • 系统规格:Intel® Core ™ i7-7500U CPU @ 2.70GHz × 4、15.6 GiB RAM、 148.6 GB SSD 驱动器
  • MySQL 版本:Ver 14.14 Distrib 5.7.20,适用于 Linux (x86_64)
  • 表:使用 INT (10)、CHAR(6) 和 VARCHAR( 创建的 6 个表63) 数据类型作为主键,在另一列上有或没有索引(myindex)

测试过程

  • 在每个表中插入 1000 万行
  • 执行 count(*) 查询每个表使用 myindex 作为过滤器
  • 使用 BENCHMARK() 测量执行时间函数

结果

Table Name Time (sec)
jan_int 21.30
jan_int_index 18.79
jan_char 21.70
jan_char_index 18.85
jan_varchar 21.76
jan_varchar_index 18.86

如上表所示,在所有六个表配置中,查询执行时间几乎相同,无论是否有索引.

结论

我们的实验结果表明对于引用列表的特定用例,在 MySQL 中使用 INT 和 VARCHAR 作为主键没有显着的性能差异。因此,两种数据类型之间的选择可以由其他因素来指导,例如数据模型的清晰度和可维护性。

以上是MySQL 中的 INT 与 VARCHAR 主键:数据类型真的会影响性能吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn