MYSQL移动索引的位置

时间:2010-07-05 19:07:16

标签: mysql indexing merge

因此,谷歌上的搜索没有发现任何内容,到目前为止StackOverflow也没有。

基本上我的问题是:我有一个merge table和另一个我希望合并到它的普通表。不幸的是,这个新表中的一个索引位置不合适,因此合并不起作用。

现有合并表索引:

KEY `Row ID` (`Row ID`),
KEY `Correlation ID` (`Correlation ID`),
KEY `Unit Serial Number` (`Unit Serial Number`,`Trunk Number`),
KEY `Seize Date` (`Seize Date`),
KEY `Unit Serial Number_2` (`Unit Serial Number`,`Type`,`Trunk Number`),
KEY `Unit Serial Number_3` (`Unit Serial Number`,`Type`,`Seize Date`,`Trunk Number`),
KEY `Processed` (`Processed`),
KEY `Called Number` (`Called Number`),
KEY `Calling Number` (`Calling Number`),
KEY `File ID` (`File ID`)

新表索引:

PRIMARY KEY (`Row ID`),
KEY `Correlation ID` (`Correlation ID`),
KEY `Unit Serial Number` (`Unit Serial Number`,`Trunk Number`),
KEY `Seize Date` (`Seize Date`),
KEY `Unit Serial Number_2` (`Unit Serial Number`,`Type`,`Trunk Number`),
KEY `Unit Serial Number_3` (`Unit Serial Number`,`Type`,`Seize Date`,`Trunk Number`),
KEY `Called Number` (`Called Number`),
KEY `Calling Number` (`Calling Number`),
KEY `File ID` (`File ID`),
KEY `Processed` (`Processed`)

正如您所看到的那样,讨厌的已处理密钥位于错误的位置,导致合并表停止工作。

解决此问题的快速方法是什么?

编辑:

我需要合并的表格大小为5 gig。

2 个答案:

答案 0 :(得分:2)

创建临时表执行合并,然后转到旧表

答案 1 :(得分:2)

尝试删除最后四个索引,然后按正确的顺序重新创建它们。