MIN/MAX vs ORDER BY and LIMIT選擇MAX或ORDER BY限制1
要跟進這個問題:我發現了一些成績從什麼肖恩McSomething描述非常不同:
我有300M左右行的表。
Select max(foo) from bar;
大約需要15秒。運行
Select foo from bar order by foo desc limit 1;
需要3秒。以運行
肖恩的聲明「它看起來像MIN()是最好的方式 - 在最壞的情況下速度更快,在最好的情況下難以區分」對於這種情況並不適用......但我不知道爲什麼。任何人都可以提供解釋嗎?
編輯:因爲我無法在這裏顯示錶的結構:假設bar是ndb_cluster中的一個表,沒有關係,foo是沒有索引的任意數據點。
你可以提供'SHOW CREATE TABLE bar' - 索引或外鍵可能會影響它 – Mikhail 2010-11-11 17:30:19
你有兩個SQL語句不會做同樣的事情,你確定你測試正確?您的最後一條語句將不得不'按條件排序',因爲它們是相同的。 – nos 2010-11-11 17:31:21
引擎類型也可以在查詢性能中起作用。 – 2010-11-11 17:31:38