• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL中int、char以及varchar的性能对比

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

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了MySQL等相关知识,希望本文的分享对您有所帮助
本篇文章给大家带来的内容是关于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的性能对比的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-12-05Oracle 数据显示 横表转纵表
  • 2018-12-05有关mysql_fetch_array()函数的文章推荐10篇
  • 2018-12-058 个不得不说的 MySQL 陷阱
  • 2018-12-05关于网络负载平衡的详细介绍
  • 2018-12-05小议sqlserver数据库主键选取策略
  • 2018-12-05有关闪耀的文章推荐8篇
  • 2018-12-05mysql数据库快速入门基础学习(经典教程)
  • 2018-12-05如何设置MySQL数据库最安全?
  • 2018-12-05MySQL中基本语法与语句详解
  • 2018-12-05利用db_link创建物化视图数据同步到数据仓库

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • php 接口类与抽象类的实际作用
    • VS2008连接SQL Server数据库文件出错的解决方法
    • mysql 海量数据的存储和访问解决方案
    • 控制流程函数定义与用法汇总
    • 实例详解MySQL5.7中 performance和sys schema中的监控参数
    • 讲解mysql group by 组内排序的方法
    • Oracle数据库输出输入
    • mysql-数据库读取出来的数据如何组装多层嵌套的json
    • 学习mysql之后的一点总结(基础)
    • SQL 导入导出Excel数据的语句

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有