软件安装:装机软件必备包

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的性能比较相关推荐

  1. mysql查询char和int哪个快_MySQL中int、char以及varchar的性能对比

    本篇文章给大家带来的内容是关于MySQL中int.char以及varchar的性能对比,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 网络上有许多似是而非的"谣言" ...

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

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

  3. mysql end case连接_MySql 中 case when then else end 的用法

    解释: SELECT case                   -------------如果 when sex='1' then '男' -------------sex='1',则返回值'男' ...

  4. mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天

    mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...

  5. mysql int 正数 范围_mysql中整数字段不同类型的取值范围

    mysql数据库设计,其中,对于数据性能优化,字段类型考虑很重要,整数(int)字段类型分有符号和无符号两种(UNSIGNED属性就是将数字类型无符号化,与C.C++这些程序语言中的unsigned含 ...

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

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

  7. mysql bigint 运算_mysql中int、bigint、smallint 和 tinyint的区别详细介绍

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

  8. mysql中int(m)_mysql中int(M) tinyint(M)中M的作用

    原先对mysql不太理解,但也没有报错.但理解的不够深入.这次补上. 原来以为int(11)是指11个字节,int(10)就是10个字节.我错了. http://zhidao.baidu.com/li ...

  9. mysql中int(16)_MySQL中int(M)和tinyint(M)数值类型中M值的意义

    在一开始接触MySQL数据库时,对于int(M)及tinyint(M)两者数值类型后面的M值理解是最多能够插入数据库中的值不能大于M: 后来工作后,也是一边学习一边使用,之后的理解是其中的M的意思是插 ...

最新文章

  1. Feature Selection Techniques
  2. 转载--线程同步机制及比较
  3. Android 系统工具类SystemUtils
  4. Elasticsearch--建议器
  5. 开机f8修复电脑步骤_知识 | 8种方法修复电脑无法开机问题
  6. UVa 11121 Base -2(负数进制)
  7. python带参数的装饰器_Python-----带参数的装饰器以及补充
  8. 关闭保护火狐浏览器的保护与多余的加载项
  9. 百度元老黯然离职是被开除?向海龙回应...
  10. DEA for mac 热部署
  11. 原生开发什么意思_原生app开发是什么意思?
  12. ue4中特殊的Actors,以及Actor与Component的关系
  13. three points 1(平面几何 三角形)
  14. pycharm的安装配置及思维导图
  15. 搬运视频消重 wide短视频软件怎么去水印
  16. 【Java】银行账户管理系统
  17. 学习和思考的一点小总结
  18. truncate table AND rename table + create table测试
  19. 杭电OJ题目分类(转载)
  20. 【Linux】Linux编程基础(vi、gcc、gdb)

热门文章

  1. Elasticsearch学习之路(一)
  2. 【Sql Server】DateBase-子查询
  3. ?:在正则表达式中什么意思
  4. LeetCode简单题之分割平衡字符串
  5. 编译ONNX模型Compile ONNX Models
  6. 摄像头ISP系统原理(中)
  7. Waymo的自主进化
  8. Kazoo安装和使用
  9. php7安装执行configure报错error: off_t undefined; check your library configuration
  10. LookupError: unknown encoding: uft-8