mysql查询char和int哪个快_MySQL中int、char以及varchar的性能对比
本篇文章给大家带来的内容是关于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的性能对比相关推荐
- mysql int数据类型长度_mysql中int数据类型长度的问题
在定义了mysql中int数据类型后,后面填写的长度有什么用呢?下文将对mysql中int数据类型长度进行详细的介绍,希望对您能有所帮助. mysql中int数据类型长度最大为11位,最少为4位,不够 ...
- 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 ...
- mysql查询动态表名的数据类型_Mysql中查询某个数据库中所有表的字段信息
前言 有时候,需要在数据库中查询一些字段的具体信息,而这些字段又存在于不同的表中,那么我们如何来查询呢? 在每一个数据库链接的information_schema数据库中,存在这样一张表--COLUM ...
- mysql查询成绩最好的十个学生_mysql中一张学生表,查询出单科成绩前十名学生的所有信息 和总分成绩前十名学生的所有信息 在线等...
匿名用户 1级 2012-03-19 回答 学生表名为:student, 单科成绩的字段为:subject.学生名字为:name 查询单科成绩前十:mysql语句为:select * from stu ...
- mysql int char连接_MySQL中int、char以及varchar的性能比较
软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...
- mysql smallint 长度_mysql中int、bigint、smallint 和 tinyint长度范围和区别
最近使用mySQL数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...
- mysql查询姓王的信息代码_MySQL查询语句练习题
1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARC ...
- mysql查询字段数据是否有空格_mysql查询条件字段值末尾有空格也能查到数据问题...
最近在联调某个业务时发现使用的签名总是验证不过,该业务根据如用户名userName后加了空格依然能够根据userName查询到结果.即 select * from user where usernam ...
- mysql int 11 最大多少_MySQL中int(11)最大长度是多少?
今天在添加数据的时候,发现当数据类型为 int(11) 时,我当时让用户添加数据时,最大输入的长度为11位,结果,添加数据添加不上,导致出现问题,我又改为最大长度为10位,结果验证9个1的时候是正常的 ...
最新文章
- elasticsearch 基础语句
- @Autowired使用
- c语言灯塔案例求塔低数,C++:有一个8层灯塔,每层所点灯数都等于该层上一层的两倍,一共有765盏灯,求塔底的灯数...
- 哈佛成功金句 -25则
- VIPKID:笔试题(数组中和为0的一对数的数量,十进制转二进制中1的个数)
- Spring Cloud学习(一)
- nginx访问静态文件
- MySQL 索引的查询、创建与删除
- Spring整合MyBatis之SqlSession对象的产生
- TS封装格式小白入门分析总结(二)之工具的使用
- selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable: eleme
- 7个最佳小型企业电子邮件营销服务(2020)
- ECMAScript标准命名
- 生活需要创意-精彩的水果创意设计
- 用Python生成动态二维码,只要5行代码,拥有你的个性二维码!
- 37互娱旗下秒小程笔试题-2020.9
- 湖南工业大学电费数据抓取(完美校园版)
- VVC帧间预测(八)DMVR
- inode节点介绍及查看和删除
- 汇川PLC和PLC之间ModebusTCP通讯