2010-03-31 55 views
2

一些基本的懷疑,我有:mysql表(MyISAM)中的索引如何工作?

1. Is primary key column automatically indexed? 

2. What should be criteria to select index column? 

3. When should I club multiple columns? 

4. Does MyISAM or InnoDB has any affect on which columns should be indexed? Probably not. 

5. Are they really required, specially in case if primary key column is automatically indexed? 

感謝。

回答

1
  1. 是的。關鍵是索引的同義詞。
  2. 數據庫設計和使用的查詢。沒有唯一的答案。
  3. 當這些多列在查詢中被使用。沒有唯一的答案。
  4. 是的,引擎不影響索引。
  5. 通常它。任何現場應用程序都會根據主鍵來確定數據。沒有唯一的答案。

索引是相當複雜的工作。首先,應該根據實際需要來完成。如果您的某些查詢轉爲運行緩慢,那麼應該添加一些索引。如果您的查詢運行速度快,則不需要索引。 接下來,在其前面輸入字EXPLAIN運行您的查詢,例如, EXPLAIN SELECT * FROM table,看看它說什麼。通常它有助於確定在哪裏放置idnex。

http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html - 在這裏更多的解釋

+0

@Shrapnel:這是否意味着我應該索引所有這些經常在選擇查詢中使用這些列? – understack 2010-03-31 08:22:39

+0

編輯問題4更清楚。 – understack 2010-03-31 08:24:59

+0

@understack不那麼容易。查看答案更新。 – 2010-03-31 08:28:14