mysql int char连接_MySQL中int、char以及varchar的性能比较
软件安装:装机软件必备包
SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。本篇文章给大家带来的内容是关于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连接_MySQL中int、char以及varchar的性能比较相关推荐
- mysql查询char和int哪个快_MySQL中int、char以及varchar的性能对比
本篇文章给大家带来的内容是关于MySQL中int.char以及varchar的性能对比,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 网络上有许多似是而非的"谣言" ...
- mysql int数据类型长度_mysql中int数据类型长度的问题
在定义了mysql中int数据类型后,后面填写的长度有什么用呢?下文将对mysql中int数据类型长度进行详细的介绍,希望对您能有所帮助. mysql中int数据类型长度最大为11位,最少为4位,不够 ...
- mysql end case连接_MySql 中 case when then else end 的用法
解释: SELECT case -------------如果 when sex='1' then '男' -------------sex='1',则返回值'男' ...
- mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天
mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...
- mysql int 正数 范围_mysql中整数字段不同类型的取值范围
mysql数据库设计,其中,对于数据性能优化,字段类型考虑很重要,整数(int)字段类型分有符号和无符号两种(UNSIGNED属性就是将数字类型无符号化,与C.C++这些程序语言中的unsigned含 ...
- mysql smallint 长度_mysql中int、bigint、smallint 和 tinyint长度范围和区别
最近使用mySQL数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...
- mysql bigint 运算_mysql中int、bigint、smallint 和 tinyint的区别详细介绍
最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...
- mysql中int(m)_mysql中int(M) tinyint(M)中M的作用
原先对mysql不太理解,但也没有报错.但理解的不够深入.这次补上. 原来以为int(11)是指11个字节,int(10)就是10个字节.我错了. http://zhidao.baidu.com/li ...
- mysql中int(16)_MySQL中int(M)和tinyint(M)数值类型中M值的意义
在一开始接触MySQL数据库时,对于int(M)及tinyint(M)两者数值类型后面的M值理解是最多能够插入数据库中的值不能大于M: 后来工作后,也是一边学习一边使用,之后的理解是其中的M的意思是插 ...
最新文章
- Feature Selection Techniques
- 转载--线程同步机制及比较
- Android 系统工具类SystemUtils
- Elasticsearch--建议器
- 开机f8修复电脑步骤_知识 | 8种方法修复电脑无法开机问题
- UVa 11121 Base -2(负数进制)
- python带参数的装饰器_Python-----带参数的装饰器以及补充
- 关闭保护火狐浏览器的保护与多余的加载项
- 百度元老黯然离职是被开除?向海龙回应...
- DEA for mac 热部署
- 原生开发什么意思_原生app开发是什么意思?
- ue4中特殊的Actors,以及Actor与Component的关系
- three points 1(平面几何 三角形)
- pycharm的安装配置及思维导图
- 搬运视频消重 wide短视频软件怎么去水印
- 【Java】银行账户管理系统
- 学习和思考的一点小总结
- truncate table AND rename table + create table测试
- 杭电OJ题目分类(转载)
- 【Linux】Linux编程基础(vi、gcc、gdb)
热门文章
- Elasticsearch学习之路(一)
- 【Sql Server】DateBase-子查询
- ?:在正则表达式中什么意思
- LeetCode简单题之分割平衡字符串
- 编译ONNX模型Compile ONNX Models
- 摄像头ISP系统原理(中)
- Waymo的自主进化
- Kazoo安装和使用
- php7安装执行configure报错error: off_t undefined; check your library configuration
- LookupError: unknown encoding: uft-8