SELECT id FROM store ORDER BY id DESC LIMIT 1
SELECT COUNT(*) FROM store
我有一個表,ID是自動增量。 我試着計算行數,因爲我的ID是自動遞增1,所以最後的ID將行Mysql select last id vs COUNT(*)
我想知道哪些查詢可以有更好的表現 選擇最後一個ID或使用COUNT
SELECT id FROM store ORDER BY id DESC LIMIT 1
SELECT COUNT(*) FROM store
我有一個表,ID是自動增量。 我試着計算行數,因爲我的ID是自動遞增1,所以最後的ID將行Mysql select last id vs COUNT(*)
我想知道哪些查詢可以有更好的表現 選擇最後一個ID或使用COUNT
第一個可能表現更好。
第二個是準確的,你應該使用它。該ID不保證沒有漏洞。如果你刪除了,肯定會有空白。
假設id
是一個主鍵,兩者都可以使用索引來滿足,這應該比讀取整個表更快。
@Phil這個問題。 。 。這是另一個原因。 –
如果您使用的是MyISAM,那麼請確定使用COUNT!無論如何,該值都存儲在每張表中,因此甚至不需要引用表格內容。但InnoDB不同。它必須實際對行進行計數。但我仍然會使用COUNT。雖然不是經常InnoDB ...
我會去與count(*)
因爲它在MySQL中進行了優化,它保證了一個正確的答案。你總是可以刪除行,所以依靠最後的id
不是一個好主意。
什麼是你刪除一行? –
'SELECT COUNT(*)FROM store'是合適的 – Damith
@Phil。 。 。該問題具體詢問「我嘗試對行進行計數」,而不是獲取最後一個ID。 –