mysql加单引号和不加单引号的性能比较
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-24 21:03:53 浏览: 评论:0
刚刚我们说过了,生活中难免会有一些不如意,比如,我们用一个字符串类型的字段来作为主键,表面上,这太不如意了,然而,事实也证明这是有用的,问题也就出来了,当在查询语句中对该字段值加上单引号和不加查询耗时相差百倍.
我建立的测试表是这样子的,代码如下:
- 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分别跑了一下上面两条语句.
no-single-quotes-300x97
没有单引号时
single-quotes-300x101
有单引号时
很明显,不使用单引号没有用上主索引,并进行了全表扫描,使用单引号就能使用上索引了,后来我用大于分别进行了测试,返回的结果集相同,而他们的耗时和上面一样,用EXPLAIN测试,也和上面一样,代码如下:
- SELECT *
- FROM `foo`
- WHERE `key` >1293322797
- SELECT *
- FROM `foo`
- WHERE `key` >'1293322797'
- //开源软件:phpfensi.com
就是这些,综上所述,我们在写SQL查询的时候还是不厌其烦的加上单引号吧,似乎那没有坏处.
总结一下,在mysql中单引号是代表字符不需要还编辑了,如果不是字符还需要mysql进行一个类型判断操作所以自然就慢了.
Tags: mysql单引号 mysql性能比较
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)