文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何对比MySQL中int、char以及varchar的性能

2024-04-02 19:55

关注

小编给大家分享一下如何对比MySQL中int、char以及varchar的性能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

网络上有许多似是而非的“谣言”,当然都不是恶意,绝大部分都是开发者不愿意自己主动研究,反而轻信其他人的信口之言。

关于数据库的谣言也有不少,比如“int性能比char高很多”。

我最近针对int、long、char、varchar进行了一次性能测试,发现它们其实并没有太大的性能差距:

备注:c8=char(8), s8=varchar(8), i8=(bigint), c4=char(4), s4=varchar(4), i4=char(4)

100w行无索引情况下查询:

执行[c8查询]20次, 平均耗时312.0ms
执行[s8查询]20次, 平均耗时334.3ms
执行[i8查询]20次, 平均耗时276.95ms
执行[c4查询]20次, 平均耗时354.95ms
执行[s4查询]20次, 平均耗时340.45ms
执行[i4查询]20次, 平均耗时291.1ms

创建索引:

c8索引耗时2439ms
s8索引耗时2442ms
i8索引耗时1645ms
c4索引耗时2296ms
s4索引耗时2303ms
i4索引耗时1403ms

有索引情况下查询:

执行[c8查询]10000次, 平均耗时0.271ms
执行[s8查询]10000次, 平均耗时0.2354ms
执行[i8查询]10000次, 平均耗时0.2189ms
执行[c4查询]10000次, 平均耗时0.303ms
执行[s4查询]10000次, 平均耗时0.3094ms
执行[i4查询]10000次, 平均耗时0.25ms

结论:

无索引:全表扫描不会因为数据较小就变快,而是整体速度相同,int/bigint作为原生类型稍快12%。

有索引:char与varchar性能差不多,int速度稍快18%

在数据存储、读写方面,整数与等长字符串相同,varchar额外多了一个字节所以性能可能会些许影响(1/n)。

在数据运算、对比方面,整数得益于原生支持,因此会比字符串稍快一丁点。

若采用索引,所谓整数、字符串的性能差距更是微乎其微。

在实际开发中,许多开发者经常使用char(1)、char(4)这样的字符串表示类型枚举,这种做法在我看来属于最佳方案,因为这种做法在存储空间、运算性能、可读性、可维护性、可扩展性方面,远胜于int、enum这种数据类型。

看完了这篇文章,相信你对“如何对比MySQL中int、char以及varchar的性能”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯