索引和鍵

概念

MySQL 表中的索引就像書中的索引一樣。

假設你有一本關於資料庫的書,你想找一些關於儲存的資訊。沒有索引(假設沒有其他幫助,例如目錄),你必須逐個瀏覽頁面,直到找到主題(這是全表掃描)。另一方面,索引有一個關鍵字列表,所以你可以查閱索引,看看第 113-120,231 和 354 頁上提到了儲存。然後你可以直接翻到這些頁面,而無需搜尋(這是使用索引進行搜尋,速度稍快一些)。

當然,索引的有用性取決於許多事情 - 一些例子,使用上面的明喻:

  • 如果你有一本關於資料庫的書並將資料庫這個詞編入索引,你可能會看到它在第 1-59,61-290 和 292-400 頁中提到過。這是很多頁面,在這種情況下,索引沒有多大幫助,逐個瀏覽頁面可能會更快。 (在資料庫中,這是選擇性差。)
  • 對於一本 10 頁的書,製作一個索引是沒有意義的,因為你可能最終得到一個 10 頁的書,前面有一個 5 頁的索引,這只是愚蠢的 - 只需掃描 10 頁並完成它。
  • 索引也需要有用 - 通常沒有必要編制索引,例如,每頁的字母 L 的頻率。