mysql innodb快速索引创建不起作用

xqk2d5yq  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(409)

我有一个innodb表,有大约20000000条记录,我想在上面添加一些索引。因为我在这个表的不同列上有很多查询,所以我知道在这种情况下,多列索引比单列索引更好。所以我创建了索引 Fast Index Creation 技术如下:

ALTER TABLE mtTBL 
ADD INDEX `index1`  (`col09`,`col03`,`col02`),
ADD INDEX `index2`  (`col09`,`col03`),
ADD INDEX `index3`  (`col09`,`col03`,`col07`),
ADD INDEX `index4`  (`col09`,`col03`,`col12`),
ADD INDEX `index5`  (`col03`),
ADD INDEX `index6`  (`col09`),
ADD INDEX `index7`  (`col09`,`col07`),
ADD INDEX `index8`  (`col09`,`col12`),
ADD INDEX `index9`  (`col09`,`col04`),
ADD INDEX `index10` (`col09`,`col13`),
ADD INDEX `index11` (`col09`,`col06`),
ADD INDEX `index12` (`col09`,`col02`),
ADD INDEX `index13` (`col09`,`col06`,`col08`,`col10`);

但我看到它大约需要8分钟,与逐个添加索引时的情况类似。那么问题是什么呢?

exdqitrt

exdqitrt1#

它似乎是在等待一个索引在下一个索引之前完成吗(这可能表明快速索引创建只对一个用户很快。)
您使用的是什么版本的mysql(更新的版本可能会有进一步的改进。)
这是一个“太多”的索引。请讨论一下表中有什么,以及为什么需要这么多索引(可能有解决办法。)
如果你有 col09 作为 PRIMARY KEY . (现在的pk是什么?)
为什么8分钟很重要?你不会每天都添加索引。
浏览stackoverflow教程,这样你就可以获得足够的“声誉”来回答我的问题。

相关问题