改变MySQL性能的一个单引号
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,今天小编就为大家带来一篇介绍一个单引号就能改变MySQL性能的文章。小编觉得挺实用的,为此分享给大家做个参考。一起跟随小编过来看看吧。用一个字符串类型的字段来作为主键。问题也就出来了,当在查询语句中对
千家信息网最后更新 2025年01月22日改变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安全错误
数据库的锁怎样保障安全
电影服务器怎么做
hp服务器 设置管理地址
天刀手游服务器满进不去怎么办
杨浦网络技术公司
北京正规软件开发设施
网络技术课程网盘
班组网络安全报道
怎样判断数据库是否删除
长城宽带断网服务器无响应
网络安全技能大赛讲解
基金下单软件开发
软件开发 退税 预付款
10美元永久服务器
浅谈数据库应用技术豆丁网
做好网络安全的简报
数据库为表添加一个列
河南特种网络技术创新服务
网络安全潜力
新华日报软件开发岗
阿里云服务器宽度
网络安全训练营哪里有
浙江省网络安全工作总结
cod17连接服务器中断
注册用户信息一般在数据库哪里
我的世界服务器合成封印石
数据库审计哪家公司好
双非研究生深圳软件开发待遇
通讯网络技术专利排名
北京公交app服务器无法请求
抓取网站股票历史数据库