2010-10-21 104 views
2

我使用phpMyAdmin創建表並且想要將兩個不同的列定義爲索引。我並不想創建多列索引,但phpMyAdmin創建它們。有沒有可能的問題呢?這些字段不直接相互關聯,並且這兩個字段不會在WHERE子句中同時使用。phpMyAdmin想要將多個索引添加爲一個多列索引

考慮:

ALTER TABLE `documents` ADD INDEX (`offer_number`, `contract_number`); 

和:

ALTER TABLE `documents` ADD INDEX (`offer_number`); 
ALTER TABLE `documents` ADD INDEX (`contract_number`); 

有什麼區別?

回答

7

如果索引的第一列與查詢中使用的列匹配,則MySQL只能使用索引。換句話說,如果您執行的查詢可以使用contract_number的索引,則不會使用組合索引,因爲contract_number不是該鍵中的第一列。但是,組合索引可用於使用offer_number的查詢。