2017-04-03 71 views
0

我試圖找出是否使用「限制1」將工作速度更快,同時在執行上的MySQL數據庫「選擇」查詢與記錄milions,如:MySQL性能 - 選擇一行,我應該使用限制1嗎?

SELECT * FROM users where id = 99999; 

SELECT * FROM users where id = 99999 LIMIT 1; /* Is it faster? */ 

我做了一些測試,執行一些查詢沒有LIMIT,但它們之間的差別非常小(使用LIMIt有一些更好的速度壽),但我不確定在未索引列和索引列中使用「WHERE」之間是否存在差異,如果它會有一些性能問題或不。

我是否應該在所有查詢中使用「LIMIT 1」,即使知道「WHERE id = 99999」只返回一行,我只想返回一個結果?

+0

因此,看起來像是如果我在索引列中使用where不重要,但它是使用LIMIT 1的「正常」列會更快嗎? –

+0

似乎在任何情況下都會更快,但您只會在「id」不是唯一的大桌子上「感受」它 – Alex

回答

0

除了表現的問題,我總是在這種情況下使用LIMIT。原因:源代碼的質量和可讀性增加,因爲讀取代碼已經確定只有一個返回值是預期的。如果它是一個不唯一的列,在我看來,LIMIT語句必須通過返回多個值來避免錯誤。