旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

MySQL中int、char以及varchar的机能对照【MySQL教程】,MySQL

作者:搜教程发布时间:2019-11-27分类:MySQL教程浏览:89评论:0


导读:本篇文章给人人带来的内容是关于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中int、char以及varchar的机能对照的细致内容,更多请关注ki4网别的相干文章!

标签:MySQL


欢迎 发表评论: