2011-04-16 63 views
2

我是新手,對mysql表的效率有點擔心。 是什麼使得在MySQL表中的字段作爲mysql表:index vs primary

的利弊
  1. 指數
  2. 主要

是什麼在決定一個領域的一個MySQL表的屬性遵循的做法呢? 請分享你的見解,謝謝。

回答

0

表中只能有一個主鍵。它應該是一個唯一標識表中每條記錄的列。主鍵不是必需的;例如,您可能有一個表來實現多對多關係,並且這些記錄不需要唯一的ID。

只要您必須查詢表並指定一些條件以基於列值(例如WHERE子句)過濾記錄,就應該使用索引。有許多關於索引的知識,例如:何時在一列上創建索引而在同一索引中創建多列。閱讀the documentation on the MySQL website about indexes瞭解更多信息。

+0

感謝AJ爲你的答案,我並不打算要求主鍵或索引的定義。我真正想知道的是在確定主鍵和/或索引時遵循的最佳實踐是什麼。一些有經驗的用戶的一些實用技巧。希望你現在明白。 – whatf 2011-04-16 17:41:22

+0

@ gamebit07 - 我相信我的回答不僅僅是一個定義。 「主鍵不是要求......」將被視爲建議/最佳實踐,而不是定義。提及單列與多列索引是建議/最佳實踐,而不是定義。如果您正在尋找適用於所有情況的定義,它將會非常高級,並且不會解決您的問題。原因:每個數據庫都會有所不同。如果您要提供數據庫模式的示例,那麼我會很樂意提供有關針對該特定方案優化索引的更具體的建議。 – 2011-04-16 17:59:50