2019独角兽企业重金招聘Python工程师标准>>>

我建立的测试表是这样子的:
代码如下 复制代码

CREATE TABLE `foo` (`key` VARCHAR(10) NOT NULL,`time` INT(11) NOT NULL,PRIMARY KEY (`key`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  • 1
  • 2
  • 3
  • 4
  • 5

然后插入30多万条数据,然后执行下面的SQL语句:
代码如下 复制代码

SELECT *
FROM `foo`
WHERE `key` =1293322797
  • 1
  • 2
  • 3

查询花费 0.1288 秒,大约花费这么久的时间,然后,给1293322797加上单引号:
代码如下 复制代码

SELECT *
FROM `foo`
WHERE `key` ='1293322797'
  • 1
  • 2
  • 3

查询花费 0.0009 秒,基本上相差100倍!!!也就是说不加单引号MySQL性能损失了100倍,很震撼的比例!
后来用EXPLAIN分别跑了一下上面两条语句,见下面两张图:

没有单引号时

有单引号时
很明显,不使用单引号没有用上主索引,并进行了全表扫描,使用单引号就能使用上索引了。
后来我用大于分别进行了测试,返回的结果集相同,而他们的耗时和上面一样,用EXPLAIN测试,也和上面一样
代码如下 复制代码

SELECT *
FROM `foo`
WHERE `key` >1293322797
  • 1
  • 2
  • 3
SELECT *
FROM `foo`
WHERE `key` >'1293322797'
  • 1
  • 2
  • 3

总结一下,在mysql中单引号是代表字符不需要还编辑了,如果不是字符还需要mysql进行一个类型判断操作所以自然就慢了。

原本是VARCHAR类型,不加引号,需要加多一个转换操作,将INT转换VARCHAR,

转载于:https://my.oschina.net/architectliuyuanyuan/blog/1816261

mysql where 加引号和不加引号相关推荐

  1. js创建对象时,属性加引号与不加引号的区别(转)

    概要: 总结一下: 1. 命名要规范,变量名或者属性名不能用数字开头. 2. 可以加引号后使用,但调用要像数组中的属性那样调用  obj['888name'] 3. 符合规范的时候,加不加引号一样 以 ...

  2. shell 数组遍历加引号和不加引号的区别?

    前言 shell 是一个比较神奇的国度,里面有太多的坑需要填,今天需要填的坑就是,数组遍历在使用时加了引号和不加引号的区别. 案例 解析: 不加引号,数组中元素间的"空格"就会编程 ...

  3. linux给变量加单引号,单引号、双引号和不加引号区别

    把内容输出出来,可能不会将含有空格的 说一下单引号.双引号和不加引号区别总结说明: 单引号: 可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么. 双引号: ...

  4. 【Linux】Shell(Bash)单引号、双引号、不加引号和反引号用法和区别详解

    简要总结 不加引号:不会将含有空格的字符串视为一个整体输出, 如果内容中有变量等,会先把变量解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续 ...

  5. ajax post 传参数加引号和不加引号的区别

    1.前言 用ajax技术,type:post,data:参数列表.参数列表就是一个JSON数据,但key可以加引号,也可以不加引号,那总有区别的. 2.区别 var d2 = "two&qu ...

  6. grep 后加单引号、双引号和不加引号的区别

    环境:VirtualBox4.1 + RedHat Linux 6 + Putty0.62 单引号: 可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么.单引 ...

  7. 单引号、双引号、不加引号和反引号

    特殊符号 单引号 ' ' 双引号 " " 不加引号 反引号 `` 单引号 ' ' 所见即所得,吃啥吐啥 里面的命令和脚本不会执行 可以看到如果光执行变量是会显示结果的 加了单引号只 ...

  8. echo命令 单引号,双引号,不加引号和反引号 的区别

    不加引号:字符串原样输出,变量会被替换.(根双引号一样,唯一的不同在于 \ 和 空格) 单引号:引号里面的内容会原封不动的显示出来(很简单,不做解释) 双引号:里面的特殊符号会被解析,变量也会被替换( ...

  9. bash 变量加双引号与不加双引号效果大不相同!

    bash 变量加双引号与不加双引号效果大不相同! 做一个实验: temp_var=$(route -n) temp_var 变量加""是这样的, 可认为是原样输出 hjj@hjj- ...

最新文章

  1. 参展神器| 算法告诉你优先参加哪个会展
  2. 【Java 并发编程】指令重排序规范 ( happens-before 先行发生原则 )
  3. Objective - C基础: 第一天 - 1. 第1, 2个OC程序
  4. Hibernate基于JDBC的批量删除
  5. 教学思路SQL之入门习题《学生成绩》 二、基础单表查询
  6. Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析【转】...
  7. CORS跨域时axios无法获取服务器自定义的header信息 - 番外篇
  8. Java 1.1.5 空串与 Null 串
  9. 银行恒温恒湿监控系统解决方案
  10. Gitlab 服务器搭建
  11. 关于ajax请求controller返回中文乱码的解决方法!
  12. 【Google浏览器无法登录账号】为安全起见,您无法从此设备登录。请稍后重试,或从其他设备登录
  13. win7/win10系统防火墙禁止单个应用联网步骤
  14. 计算机中mac ip地址查询,mac苹果电脑怎么查看本机IP与MAC地址
  15. Win系统 - 系统双击文件总弹出属性窗口如何解决?
  16. 聊聊我当面试官的感受吧
  17. 无损音乐知识收集3(转)
  18. c语言检测邮箱地址,c语言实现邮箱地址验证
  19. 年薪100万?纯属忽悠!!但年薪60万真不是个梦
  20. 百度地图JavaScript版api使用说明

热门文章

  1. module (模块化)
  2. QT5百度地图开发学习——qt调用JavaScript函数并传参
  3. iOS Background Fetch 后台应用程序刷新的使用
  4. MxNet系列——how_to——new_op
  5. 微信登录画面_每次打开微信登录界面,都会看到一个小人,他是谁呢?
  6. 51单片机(二)8051内核及STC89C52介绍
  7. 控制工程实践(5)——线性控制系统的稳态误差(之二)
  8. 搭建自己的NAS 系统
  9. 人大金仓数据库(KingbaseES)帮助文档
  10. vscode 单击跳转_vscode中ctrl+鼠标左键不能跳转_编程开发工具