改变MySQL性能的一个单引号
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,今天小编就为大家带来一篇介绍一个单引号就能改变MySQL性能的文章。小编觉得挺实用的,为此分享给大家做个参考。一起跟随小编过来看看吧。用一个字符串类型的字段来作为主键。问题也就出来了,当在查询语句中对
千家信息网最后更新 2025年11月07日改变MySQL性能的一个单引号
今天小编就为大家带来一篇介绍一个单引号就能改变MySQL性能的文章。小编觉得挺实用的,为此分享给大家做个参考。一起跟随小编过来看看吧。
用一个字符串类型的字段来作为主键。问题也就出来了,当在查询语句中对该字段值加上单引号和不加查询耗时相差百倍!
我建立的测试表是这样子的:
CREATE TABLE `foo` ( `key` VARCHAR(10) NOT NULL, `time` INT(11) NOT NULL, PRIMARY KEY (`key`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;
然后插入 30 多万条数据,然后执行下面的 SQL 语句:
SELECT *FROM `foo`WHERE `key` =1293322797
查询花费 0.1288 秒,大约花费这么久的时间,然后,给 1293322797 加上单引号:
SELECT *FROM `foo`WHERE `key` ='1293322797'
查询花费 0.0009 秒,基本上相差 100 倍!!!也就是说不加单引号 MYSQL 性能损失了 100 倍,很震撼的比例!
后来用 EXPLAIN 分别跑了一下上面两条语句,见下面两张图:
没有单引号时

有单引号时
很明显,不使用单引号没有用上主索引,并进行了全表扫描,使用单引号就能使用上索引了。
后来我用大于分别进行了测试,返回的结果集相同,而他们的耗时和上面一样,用 EXPLAIN 测试,也和上面一样
SELECT * FROM `foo` WHERE `key` >1293322797SELECT * FROM `foo` WHERE `key` >'1293322797'
加单引号和不加单引号就是这么大的差别!就是会对 mysql 性能产生这么大的影响。
再后来,我将字段 key 换成 INT 类型,这时候,加不加单引号,就没有什么差别了,EXPLAIN 显示他们都同样能够用上主索引,只是 key_len 变短了。

关于一个单引号改变MySQL性能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果喜欢这篇文章,不如把它分享出去让更多的人看到。
引号
性能
字段
索引
语句
查询
测试
就是
差别
更多
类型
实用
明显
相同
为此
万条
也就是
也就是说
内容
只是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技开锁公司
九派网络安全
泰坦云软件开发平台
如何设计数据库表结构
网络安全为什么要注意
医院化学危险品安全数据库
手持设备抄表软件开发
机关单位网络安全比赛
分布式数据库的图
当前服务器无法登录
网络安全领域最大市值上市公司
大学生网络安全情景短剧剧本
龙港市标准刀片服务器欢迎咨询
如何将两个商品数据库mdb合并
安徽名优网络技术服务信息推荐
咸阳市公安局网络安全支队
金山区企业网络技术服务郑重承诺
iphone部分转移数据库
服务器的安全防御
新疆淘金谷 电脑版 游戏服务器
孝感专业的软件开发
网络安全责任分为几种
想学点网络技术买什么书看比较好
计算机网络技术专业学软件吗
网络安全云概念
ibm服务器怎样进入安全模式
网络技术ip地址计算视频
怎么恢复qq中的重要数据库
数据库如何还原.psc
汕头市公安局网络安全