本篇文章给大家带来的内容是关于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查询char和int哪个快_MySQL中int、char以及varchar的性能对比相关推荐

  1. mysql int数据类型长度_mysql中int数据类型长度的问题

    在定义了mysql中int数据类型后,后面填写的长度有什么用呢?下文将对mysql中int数据类型长度进行详细的介绍,希望对您能有所帮助. mysql中int数据类型长度最大为11位,最少为4位,不够 ...

  2. mysql 查询每天某个时间段的数据_mysql 中,统计一个时间段内每天8时到12时的数据的查询语句怎么写?...

    比如 2012-12-11 8:00:00-12:00:00 到 2012-12-13 8:00:00-12:00:00 这3天内,8点到12点. 查询语句怎么写? 自己写出来了.EXPLAIN SE ...

  3. mysql查询动态表名的数据类型_Mysql中查询某个数据库中所有表的字段信息

    前言 有时候,需要在数据库中查询一些字段的具体信息,而这些字段又存在于不同的表中,那么我们如何来查询呢? 在每一个数据库链接的information_schema数据库中,存在这样一张表--COLUM ...

  4. mysql查询成绩最好的十个学生_mysql中一张学生表,查询出单科成绩前十名学生的所有信息 和总分成绩前十名学生的所有信息 在线等...

    匿名用户 1级 2012-03-19 回答 学生表名为:student, 单科成绩的字段为:subject.学生名字为:name 查询单科成绩前十:mysql语句为:select * from stu ...

  5. mysql int char连接_MySQL中int、char以及varchar的性能比较

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  6. mysql smallint 长度_mysql中int、bigint、smallint 和 tinyint长度范围和区别

    最近使用mySQL数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...

  7. mysql查询姓王的信息代码_MySQL查询语句练习题

    1.创建student和score表 CREATE  TABLE  student ( id  INT(10)  NOT NULL  UNIQUE  PRIMARY KEY  , name  VARC ...

  8. mysql查询字段数据是否有空格_mysql查询条件字段值末尾有空格也能查到数据问题...

    最近在联调某个业务时发现使用的签名总是验证不过,该业务根据如用户名userName后加了空格依然能够根据userName查询到结果.即 select * from user where usernam ...

  9. mysql int 11 最大多少_MySQL中int(11)最大长度是多少?

    今天在添加数据的时候,发现当数据类型为 int(11) 时,我当时让用户添加数据时,最大输入的长度为11位,结果,添加数据添加不上,导致出现问题,我又改为最大长度为10位,结果验证9个1的时候是正常的 ...

最新文章

  1. elasticsearch 基础语句
  2. @Autowired使用
  3. c语言灯塔案例求塔低数,C++:有一个8层灯塔,每层所点灯数都等于该层上一层的两倍,一共有765盏灯,求塔底的灯数...
  4. 哈佛成功金句 -25则
  5. VIPKID:笔试题(数组中和为0的一对数的数量,十进制转二进制中1的个数)
  6. Spring Cloud学习(一)
  7. nginx访问静态文件
  8. MySQL 索引的查询、创建与删除
  9. Spring整合MyBatis之SqlSession对象的产生
  10. TS封装格式小白入门分析总结(二)之工具的使用
  11. selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable: eleme
  12. 7个最佳小型企业电子邮件营销服务(2020)
  13. ECMAScript标准命名
  14. 生活需要创意-精彩的水果创意设计
  15. 用Python生成动态二维码,只要5行代码,拥有你的个性二维码!
  16. 37互娱旗下秒小程笔试题-2020.9
  17. 湖南工业大学电费数据抓取(完美校园版)
  18. VVC帧间预测(八)DMVR
  19. inode节点介绍及查看和删除
  20. 汇川PLC和PLC之间ModebusTCP通讯

热门文章

  1. 线上知识竞赛答题小程序
  2. 知识竞赛答题小程序玩法有哪些
  3. Leaflet绘制新冠病毒全球及中国各省市数据分布
  4. idea plugin加载不出来
  5. 【Android适配问题集锦-相机类】Camera拍照时快门咔嚓声适配问题
  6. 电商篇 | 公众号对接商城+微社区,强强联合!
  7. 電荷泵(Charge Pump)簡介
  8. mysql 查出二级分类_sql多级分类的级联查询
  9. 国家自然科学基金(NCFS)申请标书写作全攻略(转载自小木虫)
  10. 2022国自然部分学科评审时间公布