1. 1. 前言
  2. 2. 实验
  3. 3. 原理

前言

数据库优化一直都是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,让数据库找到一条数据之后就立刻返回结果,这样就大大提升了性能!