在MySQL中同时添加多个索引

时间:2015-06-03 17:52:12

标签: mysql indexing

在MySQL测试期间,我想将多个索引添加到一个行超过5000万的表中。 MySQL是否支持同时为不同的列添加2个索引?如果是,我是否需要打开2个会话,或者可以通过一个命令完成?

3 个答案:

答案 0 :(得分:9)

是。但...

在旧版本中,请使用

ALTER TABLE tbl
    ADD INDEX(...),
    ADD INDEX(...);

这样它就可以一次性完成所有工作。

在较新的版本中,ALGORITHM=INPLACE使得工作可以在"背景"对于InnoDB表,从而对其他处理的影响较小。但是,要获得INPLACE处理,您可能需要单独添加每个索引。

Ref manual列出了一些警告,例如处理PRIMARY KEY

答案 1 :(得分:1)

在创建表时创建它很有用,可以这样做:

CREATE TABLE name_of_a_new_table (col1 variable_type_1, col2 variable_type_2,
       INDEX idx_col1 (col1), INDEX idx_col2 (col2));

答案 2 :(得分:0)

您检查过MySQL手册吗? InnoDB支持快速索引创建,也许它正是您所寻找的:

https://dev.mysql.com/doc/refman/5.5/en/innodb-create-index.html