MySQL中明知道查询结果只有一个,SQL语句中使用LIMIT 1会提高查询效率
2015-02-16 18:25
896 查看
用户使用email作为用户名登陆的话,就需要查询出email对应的一条记录。每个用户的email是唯一的。
SELECT * FROM t_user WHERE email=?;
上面的语句实现了查询email对应的一条用户信息,但是由于email这一列没有加索引,会导致全表扫描,效率会很低。
SELECT * FROM t_user WHERE email=? LIMIT 1;
加上LIMIT 1,只要找到了对应的一条记录,就不会继续向下扫描了,效率会大大提高。
如果email是索引的话,就不需要加上LIMIT 1,如果是根据主键查询一条记录也不需要LIMIT 1,主键也是索引。
例如:
SELECT * FROM t_user WHERE id=?;
就不需要写成:
SELECT * FROM t_user WHERE id=? LIMIT 1;
二者效率没有区别。
SELECT * FROM t_user WHERE email=?;
上面的语句实现了查询email对应的一条用户信息,但是由于email这一列没有加索引,会导致全表扫描,效率会很低。
SELECT * FROM t_user WHERE email=? LIMIT 1;
加上LIMIT 1,只要找到了对应的一条记录,就不会继续向下扫描了,效率会大大提高。
如果email是索引的话,就不需要加上LIMIT 1,如果是根据主键查询一条记录也不需要LIMIT 1,主键也是索引。
例如:
SELECT * FROM t_user WHERE id=?;
就不需要写成:
SELECT * FROM t_user WHERE id=? LIMIT 1;
二者效率没有区别。
相关文章推荐
- MySQL使用limit 1提高sql查询效率
- MySQL 使用explain分析sql语句的查询效率
- MYSQL:使用慢查询日志定位效率较低的SQL语句
- MySQL 使用explain分析sql语句的查询效率(二)
- MySQL 使用explain分析sql语句的查询效率(一)
- 使用子查询提高MySQL分页效率 limit
- MYSQL:使用慢查询日志定位效率较低的SQL语句
- MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适
- MySQL优化:使用慢查询日志定位效率较低的SQL语句
- MySQL 使用explain分析sql语句的查询效率(一)
- MySQL 使用explain分析sql语句的查询效率(一)
- mysql中提高Order by语句查询效率的两个思路分析
- SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
- 使用SQL查询语句时,数组动态赋值SQL IN ()作为条件条件一个
- 在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
- 要提高SQL查询效率where语句条件的先后次序应如何写
- LAMP开发精要(13):PHP中使用mysql_stmt(预处理语句)处理select查询结果
- MySQL的一个一条SQL语句查询所有不同种类产品的一部分结果实例的SQL语句
- 【转】SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
- 一个mysql查询字段重复的sql语句