2012-07-13 98 views
2

我是第一次使用MySQL製作更大的數據庫。由於它會變得更大,我需要更好的查詢性能。所以我研究了索引。由於這是我學到的東西,我總是創建一個名爲id的列,它是自動遞增的,並且被用作主索引。MySQL - 索引問題

一些搜索和閱讀後,我想我已經瞭解關於索引的一些事情,但我想肯定。當您使用一個選擇查詢,例如WHERE,因爲不是搜索整個表條款,它只是一小部分搜索

指標是非常有用的。您應該索引WHERE和JOIN子句中使用的東西。

是不是不夠好,只是添加在phpMyAdmin一個指數要索引或做我必須做的事情做一個選擇查詢時,列?

回答

2

您不需要對SELECT語句進行任何更改。當它可以時,MySQL會自動使用索引進行查找。

所以是的,這足以通過phpMyAdmin添加索引。

要看到這個動作,一旦你創建了索引,嘗試運行具有EXPLAIN前綴一個SELECT查詢。 MySQL會告訴你哪些索引正在被使用。

+0

感謝您的幫助! :) – 2012-07-13 20:53:25

1

只需添加索引即可。數據庫引擎將盡可能使用它。要查看數據庫引擎是否使用它,您可以在查詢之前添加一個explain,它將輸出它的功能。例如:

explain select * from your_table 
+0

好吧,明白了! :) – 2012-07-13 20:53:44

1

這是事實,你可以在你的where子句中使用索引,但往往你不知道搜索的內容索引,而是尋找更多的有意義的數據,如姓名,電子郵件地址,日期等

使用索引的力量來自當你加入表,無論是對搜索的性能和數據庫的大小。想象一下,如果你有一個員工數據庫,並且你想跟蹤他們屬於哪個辦公室。只有一張桌子,每個員工都會有一個包含辦公室名稱的字符串,即「阿爾伯克基總部」。字符串佔用大量空間,搜索速度慢。

相反,設計有兩個表和索引的僱員表只需要存儲針對每個僱員的int(另一個表的索引)。第二張桌子跟蹤所有辦公室。當數據記錄數量增加時,整個數據庫變得更小。這種方法也更容易維護,並且在各方面都更好。無論哪種方式 - 你永遠不會錯過一個索引,你也可以添加一個到你創建的每個表(我相信有人可能會不同意這個聲明,但通常我會說你應該只是去爲它)。

+0

感謝您的信息! :) – 2012-07-13 20:53:34