如何处理冗余索引

时间:2013-02-03 13:22:24

标签: mysql

我尝试制作两个数据库表wp_marketingwp_email。我在这些表中遇到redundant indexes的问题。我添加了SHOW CREATE TABLE tablename;

CREATE TABLE `cur_emailcontent` (
`title` varchar(100) NOT NULL,
`message` varchar(1000) NOT NULL,
`mail_from` varchar(100) NOT NULL,
`subject` varchar(100) NOT NULL,
KEY `title` (`title`),
CONSTRAINT `cur_emailcontent_ibfk_1` FOREIGN KEY (`title`) REFERENCES `cur_marketing` (`title`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

最初我将title列设为primary,然后我将Index Type更改为INDEX。现在我可以使用任何其他column作为PRIMARY KEY,但我无法使用index删除此PHPMyAdmin,但无法删除。我必须知道这些类型的indexes被称为redundant indexes

现在除了再次创建table(s)之外,我没有任何其他选择。这些索引有解决方案吗?

1 个答案:

答案 0 :(得分:2)

如果基于cur_emailcontent查询title表是不太可能的,也不希望它是外键;也可以mail_from作为新的主键执行:

ALTER TABLE cur_emailcontent DROP FOREIGN KEY cur_emailcontent_ibfk_1,
DROP KEY title,
ADD PRIMARY KEY (mail_from);

MySQL Alter Syntax