mysql select 1
看数据库连接池源码,发现连接池的参数validationQuery(SQL查询,用来验证从连接池取出的连接)设置的值为"SELECT 1",之前很少用这种写法,于是
google一下,总结如下:
以seven_user表为例,如下是建表语句:
CREATE TABLE `smily_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`version` int(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
select 1;
select 1 from smily_test;
select id from smily_test;
select version from smily_test;
select * from smily_test;
以上sql语句执行的结果如下:
mysql> select 1;
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.00 sec)
mysql> select 1 from smily_test;
+---+
| 1 |
+---+
| 1 |
| 1 |
| 1 |
| 1 |
+---+
4 rows in set (0.00 sec)
mysql> select id from smily_test;
+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
| 4 |
+----+
4 rows in set (0.00 sec)
mysql> select version from smily_test;
+---------+
| version |
+---------+
| 1 |
| 2 |
| 3 |
| 4 |
+---------+
4 rows in set (0.00 sec)
mysql> select * from smily_test;
+----+---------+
| id | version |
+----+---------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
+----+---------+
4 rows in set (0.00 sec)
用show profiles查看这些sql语句的执行效率;
mysql> show profiles; +----------+------------+--------------------------------+ | Query_ID | Duration | Query | +----------+------------+--------------------------------+ | 1 | 0.00017700 | select 1 | | 2 | 0.00013400 | select 1 from smily_test | | 3 | 0.00011000 | select id from smily_test | | 4 | 0.00010500 | select version from smily_test | | 5 | 0.00011700 | select * from smily_test | +----------+------------+--------------------------------+ 5 rows in set (0.00 sec)
作用上来说是没有差别的,都是查看是否有记录,一般是作条件用的.
看得出执行效率为: select 1 > select 1 from table > select anycolum from table > select * from table
再来看看 count(*) 和 count(1)的效率。
+----------+------------+------------------------------------+ | Query_ID | Duration | Query | +----------+------------+------------------------------------+ | 7 | 0.00037200 | select count(1) from smily_test | | 8 | 0.00034500 | select count(*) from smily_test | +----------+------------+------------------------------------+
转载于:https://www.cnblogs.com/happySmily/p/5939704.html
mysql select 1相关推荐
- mysql select * f
mysql> select * from tb; +------+-------+ | id | name | +------+-------+ | 1 | tbone | | 3 | 2d2 ...
- mysql+select+unlock_MySQL的locktables和unlocktables的用法(转载)
mysql select * from user; ----------------- | id| name| ----------------- |22 | abc| |223 | dabc| | ...
- mysql select语法_MySQL SELECT语法(一)SELECT语法详解
SELECT的语法如下: SELECT[ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT ...
- Mysql Select 语句中实现的判断
select *,if(sva=1,"男","女") as ssva from tableame where id =1 Quote 控制流程函数 CASE v ...
- mysql select表达式_MySQL数据库SELECT查询表达式解析
数据的管理在很大一部分是在进行查找工作,而SELECT占据了很大的一部分 SELECT select_expr [,select_expr...] [ FROM table_reference WHE ...
- mysql select符合查询_数据库select group by 和having语句 多表连接查询 复合查询
1.SELECT --group by 子句 group by子句按照指定的列column_name对表数据进行分组 group by 后面跟的列也叫分组特性列 使用group by后,能选择的列 ...
- MySQL SELECT:数据表查询语句
MySQL 表单查询是指从一张表的数据中查询所需的数据,主要有查询所有字段.查询指定字段.查询指定记录.查询空值.多条件的查询.对查询结果进行排序等. MySQL SELECT 基本语法 MySQL ...
- mysql select 缓存_mysql select缓存机制使用详解
mysql Query Cache 默认为打开.从某种程度可以提高查询的效果,但是未必是最优的解决方案,如果有的大量的修改和查询时,由于修改造成的cache失效,会给服务器造成很大的开销,可以通过qu ...
- Mysql select into outfile NULL值导出的处理方法
目录 1简介... 1 2 准备... 1 2.1 环境说明... 1 3 安装... 2 4 配置... 2 5 使用... 2 5.1 验证实验... 2 5.2 问题分析... 4 6 延展.. ...
最新文章
- 迭代器模式(Iterator pattern)
- [转载自简书] ASPNetCore上传大文件碰到的一些问题总结
- 关于jquery的ajax编码的另类解决方案,巨简便
- python惰性求值效果_让Python中类的属性具有惰性求值的能力
- Python_模拟登录(爬取教务系统信息并制作查询界面)
- JWT教程_2 SpringSecurity与JWT整合
- Sqlite - constraint failed[0x1555]: UNIQUE constraint failed
- Django:MySQL查询结果为datetime.date无法转换为JSON
- mysql 索引 范围扫描_MySql学习笔记(六):扫描范围
- 最新仿7881游戏装备网虚拟物品交易源码+修复版
- matlab画空间直线,空间直线x y=z怎么画
- smtp邮件服务器配置,配置SMTP服务器
- 计算机系统备份教案,系统备份教案推荐.doc
- pdf2Image Pdf文件存为jpg NodeJs实现
- linux弹窗指令_Linux弹出U盘的正确姿势(命令行)
- 行业寒冬,Android程序员前景一片灰暗?
- Web大学生网页成品——英雄联盟LOL游戏网站制作与实现(HTML+CSS+JS)
- JPA之Specification复杂条件查询
- Linux chmod +755和chmod +777 各是什么意思呢?
- 使用安卓模拟器和GPA截帧分析手游