mysql - phpMyAdmin 想要添加多个索引作为一个多列索引

标签 mysql indexing phpmyadmin

我正在使用 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`);

有什么区别?

最佳答案

如果索引的第一列与查询中使用的列匹配,MySQL 只能使用索引。换句话说,如果您执行的查询可以使用 contract_number 上的索引,则不会使用复合索引,因为 contract_number 不是该键中的第一列.但是,复合索引可用于使用 offer_number 的查询。

关于mysql - phpMyAdmin 想要添加多个索引作为一个多列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3985641/

相关文章:

php - mysqli 错误和警告

php - 如何在采购订单表单中插入多个 `product` 和多个其他变量

PHP 从函数返回一个字符串供稍后使用?

php - INNER JOIN 第三个表

mysql - SQL 查询在 Web 托管上执行时出现错误,但在 localhost 上运行时没有问题

mysql - 通过 phpMyAdmin 将 XML 文件导入 MySQL

php - Doctrine\DBAL\Schema\SchemaException - 表 'brand_id' 上没有名称为 'clients' 的列

performance - 使用聚集索引扫描而不是查找的查询

define的C++索引走向索引初始化数

sql - 了解聚集索引