2010-11-09 83 views
2

我注意到,在PHPMyAdmin中,我可以單獨索引列,或者我可以使用複選框來選擇字段,然後單擊索引,並以不同的方式編制索引。這是否意味着,如果對於給定的表,我有該表的2列,將每行定義爲唯一的(而不是簡單的單列ID`)我應該索引這些一起來提高性能?MySQL多重索引類型?

回答

4

多列索引可以被認爲是一個包含通過連接索引列的值創建的值的已排序數組。

MySQL以這樣一種方式使用多列索引,即當您在WHERE子句中爲索引的第一列指定已知數量時,查詢速度很快,即使未指定其他列的值。

如果您有一個名爲last_namefirst_name兩列,並創建一個索引INDEX name (last_name,first_name),該指數可用於在已知範圍爲姓氏,或兩者兼有姓氏和FIRST_NAME指定值的查詢。

來源:http://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html

因此,它可能不是你的具體情況有幫助的。因爲如果你想要在後面的列上查詢(例如:SELECT * FROM test WHERE first_name='Michael'SELECT * FROM test WHERE last_name='Widenius' OR first_name='Michael),索引將不會被使用,查詢會變慢。

+0

對不起,我不太瞭解。 '當你爲第一列指定一個已知數量時' - 這是什麼意思是「已知數量」? – Webnet 2010-11-09 16:32:05

+0

我在這裏找到了最好的解釋:http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html,但是你的鏈接讓我在那裏,謝謝! – Webnet 2010-11-09 16:42:51

+0

有點困惑,但幫助我!感謝+1 – 2011-02-16 23:45:37