前言
数据库优化一直都是DBA(数据库管理员)的核心技能,今天学到了一个新的优化方式来分享给大家:LIMIT 1
LIMIT
是MySql数据库中的一个关键字,常见的用于分页,那么它是如何做到优化数据的作用呢?
首先我们先来看一下LIMIT 1
的作用,作用就是:只返回一条记录,即使有多条也忽略其他只返回第一条。
当我们知道某条SQL语句的返回结果永远只有一条的时候(例如用户登录)它就派上用场了。
实验
接下来实验一波,首先来看一下下面这条SQL语句
1 | SELECT * FROM regions WHERE region_name LIKE "%北京市%" |
为了实验效果,我使用了一个有70万条数据的地区表,为了增加查询时间,使用LIKE
字段来模糊查询
第一次运行没有加LIMIT 1
,运行了10次耗时都在0.3s左右。
现在加上LIMIT 1
来试验一波看看
1 | SELECT * FROM regions WHERE region_name LIKE "%北京市%" LIMIT 1 |
查询十次,耗时没有超过0.1s!
原理
那为什么会出现这种情况呢?
因为如果没有加LIMIT 1
的话,数据库会在找到符合条件的记录以后继续向下查询,继续寻找另一个符合条件的记录,直到最后一条数据,如果我们已经知道得到的数据永远仅仅只有一条的话,那就可以加上LIMIT 1
,让数据库找到一条数据之后就立刻返回结果,这样就大大提升了性能!