有二种方法(http://qdjalone.blog.51cto.com/1222376/1308620)
1. 借助pt-duplicate-key-checker,这是percona toolkit中的一个小工具
pt-duplicate-key-checker --host=localhost --user=xxx--password=xxx--database=xxx
以报表形式显示有重复索引的表,以及给出建议的删除语句
2. 利用information_schema.STATISTICS 数据字典
SELECT table_name,column_name,COUNT(1) ct
FROM information_schema.`STATISTICS`
WHERE seq_in_index=1
AND table_schema='test'
GROUP BY table_name,column_name
HAVING ct >=2;
其中 ct 位该索引列出现的次数!
利用这二种方法中的其中一种,逐个表的把重复索引列删除!
3.删除所有的重复索引
BEGIN
DECLARE tableNameXX VARCHAR(100);
DECLARE indexNameXX VARCHAR(100);
DECLARE sqll VARCHAR(1000);
DECLARE countIndexXX INT;
DECLARE done int;
DECLARE needUpdateC CURSOR FOR SELECT table_name,INDEX_NAME,COUNT(1) ct
FROM information_schema.`STATISTICS`
WHERE seq_in_index=1
AND table_schema='test' AND INDEX_NAME!='PRIMARY'
GROUP BY table_name,column_name
HAVING ct >=2;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN needUpdateC;
cursor_loop:LOOP
FETCH needUpdateC into tableNameXX,indexNameXX,countIndexXX;
SET sqll=CONCAT_ws(' ','drop index ',indexNameXX ,' on ',tableNameXX);
IF done=1 THEN
LEAVE cursor_loop;
END IF;
SET @sql=sqll;
PREPARE s1 FROM @sql;
EXECUTE s1;
DEALLOCATE PREPARE s1;
END LOOP cursor_loop;
CLOSE needUpdateC;
END
分享到:
相关推荐
MySQL数据库索引类型 MySQL数据库索引是指在关系型数据库管理系统中,用于提高查询速度和优化数据库性能的一种机制。索引是对数据库表中某一列或多列的值进行排序和组织,以便快速定位和检索数据。 一、MySQL...
### MySQL数据库及索引详解 #### 一、MySQL简介与数据库发展 MySQL是一款非常流行的开源关系型数据库管理系统,由瑞典MySQL AB公司开发。它以其高性能、稳定性和易用性著称,广泛应用于Web应用程序和企业级系统中...
它本质上是表中一列或几列的值的集合及其对应的物理地址列表。 **优点:** 1. **提高检索速度:**通过索引,可以在短时间内找到数据,极大提升查询效率。 2. **确保数据唯一性:**创建唯一索引可以防止重复数据的...
MySQL数据库是全球最受欢迎的开源关系型数据库管理系统之一,它以其高效、可靠和易于维护的特点,在Web开发、企业级应用和数据分析等领域广泛应用。本课件PPT涵盖了MySQL的基础知识到高级特性的深入理解,旨在帮助...
MySQL数据库是一种广泛使用的开源关系型数据库管理系统,以其高效、可靠和易于学习的特性深受开发者喜爱。本教程将全面介绍MySQL的基础知识,并通过实例帮助你掌握其核心操作。 首先,我们来了解一下MySQL的基本...
综上,《Oracle与MySQL数据库索引设计与优化》一书详细介绍了这两个数据库系统的索引特性、设计原则以及优化方法,对于数据库管理员和开发人员来说是一本极具价值的参考书。通过学习,读者可以更好地理解和应用索引...
在MySQL数据库管理中,索引是一种非常重要的概念,它能够显著提升数据查询的效率。本练习主要涵盖了如何在学生表和成绩表中创建索引以及如何查看这些索引的详细信息。下面我们将深入探讨相关知识点。 1. **索引的...
本资源摘要信息主要是基于 MySQL 数据库武洪萍版第五章习题与答案,涵盖了数据库索引、视图、触发器、存储过程和函数等多个方面的知识点。 1. 数据库索引:索引是数据库中用于提高查询速度的一种数据结构。它可以...
MySQL数据库是世界上最流行的开源关系型数据库管理系统之一,其工作流程涉及多个步骤,这些步骤在处理SQL语句时至关重要。以下是对这些步骤的详细说明: 首先,客户端通过连接器与MySQL服务器建立连接。连接器负责...
MySQL数据库是世界上最受欢迎的开源关系型数据库管理系统之一,广泛应用于互联网行业中。本复习资料涵盖了MySQL的基础概念、操作和应用,旨在帮助学生准备期末考试。以下是关键知识点的详细说明: 1. **数据库创建*...
通过对MySQL数据库中的主要业务表创建合理的索引,成功地解决了系统延迟问题,将操作时间从分钟级别恢复到秒级别。 MySQL中的索引基于数据结构,如B树和B+树。B树是一种多叉平衡查找树,其特点是每个节点最多有m...
### MySQL数据库优化与表设计详解 #### 一、数据库结构设计的重要性 在系统开发初期,一个合理且高效的数据库模型设计至关重要。它不仅能简化客户端和服务器端程序的开发及维护工作,还能显著提升系统运行时的性能...
MySQL数据库是一种广泛使用的开源关系型数据库管理系统,其原理和设计方法是数据库管理员和开发者必须掌握的基础知识。本文将深入探讨MySQL的逻辑架构、并发控制、事务处理等方面。 首先,MySQL的逻辑架构分为三层...
根据给定文件的信息,我们可以总结出一系列关于MySQL数据库的基础知识点,涵盖了SQL语言的基本操作、数据检索、表结构管理以及高级特性等内容。以下是针对文件中提到的一些关键知识点的详细解释: ### 1. 聚合函数 ...
11. 惟一索引:惟一索引的作用是保证各行在该索引上的值都不得重复。 12. 事务处理:可以使用 COMMIT 语句来将事务处理写到数据库中。 13. 查找条件:可以使用 IS NOT NULL 语句来查找条件为姓名不是 NULL 的记录...
UNIQUE 索引用于保证各行在该索引上的值都不得重复。 12.事务处理 在 MySQL 中,COMMIT 语句用于将事务处理写到数据库中。 13.IS NOT NULL 运算符 IS NOT NULL 运算符用于判断记录中的某个字段是否为 NULL。 ...
MySQL数据库文档生成工具是一款实用的软件,主要用于帮助用户快速、便捷地生成关于MySQL数据库的详细文档,包括数据库结构、表信息、字段描述等。这款工具的出现极大地简化了数据库管理员和开发人员的工作流程,使...
MySQL数据库知识点总结 MySQL 是一种关系型数据库管理系统(RDBMS),它具有高效、稳定、可靠、安全等特点,是目前最流行的开源关系型数据库管理系统之一。 MySQL 入门 1. MySQL 介绍:MySQL 是一种关系型数据库...
在MySQL数据库中,分页是处理大量数据查询时不可或缺的一种技术。它允许用户按需加载数据,而不是一次性获取所有记录,从而提高了用户体验并降低了服务器负载。以下是对分页实现的详细说明: 一、基础概念 分页是将...
MySQL数据库是目前世界上最受欢迎的关系型数据库管理系统之一,尤其在互联网领域有着广泛的应用。《MySQL数据库原理及应用(第2版)(微课版)》是一本深入浅出介绍MySQL技术的教材,配合配套教案,旨在帮助学生和...