如何在MYSQL中的两个字段上创建索引

如何在MYSQL中的两个字段上创建索引,mysql,Mysql,目前我有一个MYSQL查询正在执行中。我需要在查询中的两个字段上创建索引:cancel和complete。 执行此操作的最佳方式是什么 从表中选择*取消!='CANCEL'和complete在'complete'和'take_BACK'中创建多列索引,但不包括括号中的列名 ALTER TABLE table ADD INDEX (cancel, complete); 这相当于 CREATE INDEX table_cancel_complete_ix ON table (cancel, com

目前我有一个MYSQL查询正在执行中。我需要在查询中的两个字段上创建索引:cancel和complete。 执行此操作的最佳方式是什么


从表中选择*取消!='CANCEL'和complete在'complete'和'take_BACK'中创建多列索引,但不包括括号中的列名

ALTER TABLE table
ADD INDEX (cancel, complete);
这相当于

CREATE INDEX table_cancel_complete_ix
ON table (cancel, complete);

创建索引要求您为索引指定一个名称,对于ALTER TABLE它是可选的,它将被指定一个默认名称。

要在多个列或复合索引上添加索引,请使用以下语法:

ALTER TABLE your_table
ADD INDEX (cancel, complete);

但是,您可能希望确保这是您的陈述表现不佳的原因。查看以深入了解这一点。

我如何将其应用于上述选择?这是自动完成的。如果索引存在,MySQL将尽可能使用它。或者更确切地说,如果我想先取消索引,然后完成,该怎么办?这是我定义的索引的顺序。如果需要,可以将其反转。如果只查找其前缀,则将使用索引,因此如果只在查询中指定“取消”,则将使用上述索引,但如果只查找“完成”,则不会使用上述索引。