文档章节

mysql where 加引号和不加引号

architect刘源源
 architect刘源源
发布于 2018/05/21 19:33
字数 383
阅读 33
收藏 5

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

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,

© 著作权归作者所有

architect刘源源

architect刘源源

粉丝 167
博文 555
码字总数 935372
作品 0
浦东
程序员
私信 提问
mybatis同时查询未知个数的表中数据(表名做为参数传递,联合查询union)

MAP.XML文件配置: (select * from ${item}) 注:1,用${}

清城北苑
2016/08/29
0
0
Linux下echo的用法

linux下echo命令详解 Echo 默认显示内容到屏幕上, 例子: echo “i am study linux .” >> oldboy.txt 意思是将”i am study linux.” 放入oldboy.txt中.其中>>是追加的意思.将双引号内部的内...

高蛋白小虫
2017/05/04
0
0
Linux下echo的用法

linux下echo命令详解 Echo 默认显示内容到屏幕上, 例子: echo “i am study linux .” >> oldboy.txt 意思是将”i am study linux.” 放入oldboy.txt中.其中>>是追加的意思.将双引号内部的内...

高蛋白小虫
2017/05/04
0
0
Zsh 开发指南(第二十篇 代码风格)

导读 因为 shell 脚本语法比较灵活,写 shell 脚本的开发者熟悉的编程语言也有较大差异,大家很容易写出风格迥异的代码出来。如果只有自己一个人用还好,如果是大家合作开发同一个项目,代码...

陌辞寒
2017/09/20
0
0
linux的echo命令简单介绍

介绍: linux的echo命令, 在终端下打印变量value的时候也是常常用到, echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。 详细: 语法: echo [ -n ] 字符串 。 其中选项n...

FrendLin
2016/07/07
22
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部