數(shù)據(jù)庫優(yōu)化一直都是DBA(數(shù)據(jù)庫管理員)的核心技能,今天學(xué)到了一個新的優(yōu)化方式來分享給大家:LIMIT 1
“LIMIT”是MySql數(shù)據(jù)庫中的一個關(guān)鍵字,常見的用于分頁,那么它是如何做到優(yōu)化數(shù)據(jù)的作用呢?
首先我們先來看一下LIMIT 1的作用,作用就是:只返回一條記錄,即使有多條也忽略其他只返回第一條。
當(dāng)我們知道某條SQL語句的返回結(jié)果永遠(yuǎn)只有一條的時候(例如用戶登錄)它就派上用場了。
實(shí)驗(yàn)
接下來實(shí)驗(yàn)一波,首先來看一下下面這條SQL語句
SELECT * FROM regions WHERE region_name LIKE "%北京市%"?
為了實(shí)驗(yàn)效果,我使用了一個有70萬條數(shù)據(jù)的地區(qū)表,為了增加查詢時間,使用 LIKE 字段來模糊查詢,第一次運(yùn)行沒有加LIMIT 1,運(yùn)行了10次耗時都在0.3s左右

沒有加LIMIT 1
現(xiàn)在加上LIMIT 1來試驗(yàn)一波看看,查詢十次,耗時沒有超過0.1s!

加上LIMIT 1
那么為什么會出現(xiàn)這種情況呢?
因?yàn)槿绻麤]有加 LIMIT 1 的話,數(shù)據(jù)庫會在找到符合條件的記錄以后繼續(xù)向下查詢,繼續(xù)尋找另一個符合條件的記錄,直到最后一條數(shù)據(jù),如果我們已經(jīng)知道得到的數(shù)據(jù)永遠(yuǎn)僅僅只有一條的話,那就可以加上 LIMIT 1,讓數(shù)據(jù)庫找到一條數(shù)據(jù)之后就立刻返回結(jié)果,這樣就大大提升了性能!