2010-06-22 67 views

回答

5

一般來說,是的。如果您在該字段上執行ORDER BY,則應該將其編入索引。當然,你需要首先測試它,以確保它確實有幫助 - 如果你只選擇了少量的行,它可能沒有太大的區別。

4

你真的希望有一個sort_ordermaxes out at 9,223,372,036,854,775,807?!假設爲零,INT仍然相當大,最大值爲2,147,483,647 ...

取決於您的查詢,但我會考慮在獨立之前在覆蓋索引中使用它。 MySQL has a space limit on indexes,如果您定義每列索引,則可能會達到上限:

前綴支持和前綴長度(受支持的)是依賴於存儲引擎的。例如,對於MyISAM表,前綴可以長達1000個字節,對於InnoDB表,前綴可以長達767個字節。

2

正如埃裏克上面已經提到的,答案是肯定的。

儘管如此,如果你實際上是做了很多的插入和更新的表中,MySQL構建的,需要每一個有表中所做的更改時要更新的索引信息的單獨塊。因此在某些情況下可能會有開銷。

所以基本上這是一個混合的情況下,情節應始終考慮。

2

一般來說,沒有。你用搜索來證明索引。當你將記錄數減少到通常顯示的數字(比如說少於幾百)時,有一個索引不會爲你購買任何東西。

所以只能添加一個索引,如果你會使用字段選擇(其中包括,比如說,「LIMIT 500」爲實例。)

+0

即使在有限的記錄,有希望的性能每一點的商店,他們可以得到。 – 2010-06-22 22:14:43

+0

這幾乎肯定是淨虧損。如果集合很小,「ORDER BY」不會受益;維護索引是純粹的開銷。 – dkretz 2010-06-23 01:43:18

+0

「一般來說,否」不會涵蓋需要全表讀取並且有序讀取有益甚至是必需的情況嗎? – Harald 2015-06-30 12:27:39

相關問題