代码之家  ›  专栏  ›  技术社区  ›  Tatu Ulmanen

phpMyAdmin希望将多个索引添加为一个多列索引

  •  2
  • Tatu Ulmanen  · 技术社区  · 14 年前

    我正在使用phpMyAdmin创建表,并希望将两个不同的列定义为索引。我不想创建多列索引,但phpMyAdmin会这样创建它们。有什么问题吗?字段之间不直接相关,并且这两个字段将不在 WHERE 从句同时出现。

    考虑:

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

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

    有什么区别?

    2 回复  |  直到 14 年前
        1
  •  7
  •   Dan Grossman    14 年前

    MySQL只能在索引的第一列与查询中使用的列匹配时使用索引。换句话说,如果在 contract_number 可以使用,因为 不是该键的第一列。复合索引可用于查询 offer_number

        2
  •  3
  •   Mchl    14 年前

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

    http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

    考虑到您对这些字段的看法,它们不应该是一个多列索引的一部分。