mysql居然可以在相同的字段上重复建索引,oracle是不行的。需要安装pt-query-digest。
[root@VM-10 ~]# pt-duplicate-key-checker -h10.10.11.208 -uroot -proot -P3316 --charset=gbk
# ########################################################################
# test.app_chat_message
# ########################################################################
# idx_app_chat_message_to_user_from_user is a left-prefix of Index 3
# Key definitions:
# KEY `idx_app_chat_message_to_user_from_user` (`to_user`,`from_user`),
# KEY `Index 3` (`to_user`,`from_user`,`message_id`),
# Column types:
# `to_user` varchar(50) not null default ''
# `from_user` varchar(50) not null default ''
# `message_id` varchar(40) not null default ''
# To remove this duplicate index, execute:
ALTER TABLE `test`.`app_chat_message` DROP INDEX `idx_app_chat_message_to_user_from_user`;
# Index 2 is a left-prefix of Index 3
# Key definitions:
# KEY `Index 2` (`to_user`,`from_user`),
# KEY `Index 3` (`to_user`,`from_user`,`message_id`),
# Column types:
# `to_user` varchar(50) not null default ''
# `from_user` varchar(50) not null default ''
# `message_id` varchar(40) not null default ''
# To remove this duplicate index, execute:
ALTER TABLE `test`.`app_chat_message` DROP INDEX `Index 2`;
# ########################################################################
# test.pub_user
# ########################################################################
# phone is a duplicate of phone_idx
# Key definitions:
# KEY `phone` (`phone`),
# KEY `phone_idx` (`phone`),
# Column types:
# `phone` varchar(15) collate utf8_bin default null
# To remove this duplicate index, execute:
ALTER TABLE `test`.`pub_user` DROP INDEX `phone`;
# email is a duplicate of email_idx
# Key definitions:
# KEY `email` (`email`),
# KEY `email_idx` (`email`),
# Column types:
# `email` varchar(50) collate utf8_bin default null
# To remove this duplicate index, execute:
ALTER TABLE `test`.`pub_user` DROP INDEX `email`;
# account is a duplicate of account_idx
# Key definitions:
# KEY `account` (`account`),
# KEY `account_idx` (`account`),
# Column types:
# `account` varchar(50) collate utf8_bin default null
# To remove this duplicate index, execute:
ALTER TABLE `test`.`pub_user` DROP INDEX `account`;
#########################################################################
.........................................................................
.........................................................................
# Size Duplicate Indexes 20358902596
# Total Duplicate Indexes 17
# Total Indexes 664