2014-01-21 144 views
0
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

+1

什麼是你刪除一行? –

+1

'SELECT COUNT(*)FROM store'是合適的 – Damith

+0

@Phil。 。 。該問題具體詢問「我嘗試對行進行計數」,而不是獲取最後一個ID。 –

回答

4
相同的值

第一個可能表現更好。

第二個是準確的,你應該使用它。該ID不保證沒有漏洞。如果你刪除了,肯定會有空白。

假設id是一個主鍵,兩者都可以使用索引來滿足,這應該比讀取整個表更快。

+0

@Phil這個問題。 。 。這是另一個原因。 –

0

如果您使用的是MyISAM,那麼請確定使用COUNT!無論如何,該值都存儲在每張表中,因此甚至不需要引用表格內容。但InnoDB不同。它必須實際對行進行計數。但我仍然會使用COUNT。雖然不是經常InnoDB ...

0

我會去與count(*)因爲它在MySQL中進行了優化,它保證了一個正確的答案。你總是可以刪除行,所以依靠最後的id不是一個好主意。