mysql 强制使用索引_快速找出MySQL数据库冗余索引和未使用索引

冗余索引和未使用索引的危害

c6e5183cb654a4c55b189c36ef34664a.png

随着上线的业务越来越多,在MySQL数据库中建的表也会越来越多,为提高查询访问速度,会创建相应的索引。但是由于技术人员的水平参差不齐,业务下线,代码逻辑变更等原因,导致线上数据库会有冗余索引或者从未使用的索引存在,这些索引不仅消耗大量的磁盘空间,而且还会影响数据库的insert,update性能,因此作为数据库管理人员,需要及时发现这些冗余索引和未使用索引,并及时清理。

冗余索引和未使用索引定位

要找出线上数据库的冗余索引和未使用索引,使用工具,会让你事半功倍,例如percona-toolkits工具集就提供pt-duplicate-key-checker和pt-index-usage就能非常方便找出数据库的冗余索引和未使用索引。

55d69cf4429c9edc1278757532b7d316.png

在MySQL5.7的版本sys模式下,schema_redundant_indexes和schema_unused_indexes两个视图,更方便直接的展示,个人感觉比pt-duplicate-key-checker和pt-index-usage的方便和准确。

下面就来具体查看一下相关信息。

找重复索引,并提供drop index语句

mysql> select * from schema_redundant_indexesG;*************************** 1. row ***************************              table_schema: sbtest                table_name: sbtest1      redundant_index_name: k_1   redundant_index_columns: kredundant_index_non_unique: 1       dominant_index_name: idx_sbtest1_k    dominant_index_columns: k dominant_index_non_unique: 1            subpart_exists: 0            sql_drop_index: ALTER TABLE `sbtest`.`sbtest1` DROP INDEX `k_1`*************************** 2. row ***************************              table_schema: sbtest                table_name: sbtest1      redundant_index_name: idx_sbtest1_id_k   redundant_index_columns: id,kredundant_index_non_unique: 1       dominant_index_name: PRIMARY    dominant_index_columns: id dominant_index_non_unique: 0            subpart_exists: 0            sql_drop_index: ALTER TABLE `sbtest`.`sbtest1` DROP INDEX `idx_sbtest1_id_k`

在这里确认一下,这个视图找出来的重复index是否准确,看看sbtest.sbtest1的表结构

mysql> show create table sbtest.sbtest1G;*************************** 1. row ***************************       Table: sbtest1Create Table: CREATE TABLE `sbtest1` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  `k` int(10) unsigned NOT NULL DEFAULT '0',  `c` char(120) NOT NULL DEFAULT '',  `pad` char(60) NOT NULL DEFAULT '',  PRIMARY KEY (`id`),  KEY `k_1` (`k`),  KEY `idx_sbtest1_id_k` (`id`,`k`),  KEY `idx_sbtest1_k` (`k`)) ENGINE=InnoDB AUTO_INCREMENT=5000001 DEFAULT CHARSET=utf8 MAX_ROWS=10000001 row in set (0.00 sec)

k_1,idx_sbtest1_id_k,idx_sbtest1_k三个索引确实是冲突了,系统建议保留idx_sbtest1_k这个索引。

b64eb228325ce545126f2d30ebdfa878.png

来定位未使用索引

mysql> select * from schema_unused_indexes;+---------------+-------------+--------------------+| object_schema | object_name | index_name         |+---------------+-------------+--------------------+| sbtest        | sbtest1     | k_1                || sbtest        | sbtest1     | idx_sbtest1_id_k   || sbtest        | sbtest1     | idx_sbtest1_k      || sbtest        | t_pay_test  | k_1                || sbtest        | t_pay_test  | idx_t_pay_test_k_c |+---------------+-------------+--------------------+5 rows in set (0.00 sec)

删除未使用索引时,需要注意一下,建议每个月都获取一次,如果连续3个月都没有使用,可以删除掉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java第一次课必修实验答案,Java第一次实验报告

北京电子科技学院(BESTI)实验报告课程:Java实验 班级:201352 姓名:池彬宁 学号:20135212成绩: 指导教师:娄佳鹏 实验日期:15.04.14实验密级: 预习程度…

在matlab中求协方差,matlab里面的求协方差函数

一:matlab里面关于方差和协方差的几点需要注意的求均值的函数:mean求方差的函数:var标准差:方差:求协方差的函数:cov1 如果a,b是向量,则:cov(a,b)相当于是[D(a),cov(a,b);cov(b,a),D…

手机浏览器网址_「效率集」自定义网址导航高级功能介绍

「效率集」是国内仅有的几家提供了个性自定义导航的网站,功能比hao123强,用户体验优于百度导航首页,且支持聚合搜索,方便用户从不同渠道(网页,微博,微信公众号,知乎,维基…

属于服务器端运行的程序_生信分析云平台产品开发 - 5 生信分析pipeline服务器端运行...

在上文 [生信分析云平台产品开发 - 4 生信分析pipeline的图形化] 讨论了生信分析pipeline的图形化,如何用图形的方式显示生信pipeline,但是pipeline脚本按照变量的形式保存之后,如何运行,在什么环境下运行?是本文要解决…

TF卡里删掉文件后内存没变大_原来三星手机是这样清理内存的,难怪用好几年也不卡...

三星手机的耐用性一直都很高,而除了手机本身系统性能做的很好之外,手机的设置也是很人性化的。在三星手机使用了一段时间过后,手机里的内存会越来越大,手机里的垃圾也会越存越多,那么我们应该怎么清理手机中的内存呢&a…

拓扑排序排课系统_视频结构化人脸布控系统

一、平台背景在国家智慧城市的建设中的公共安全,对维稳防控、全城布控、预测预警、综合管理等提出了更高需求,针对这些需求我们作为识别领域的领先者,结合我们的识别技术,更全面、更智能提出了我们视频结构化黑名单布控系统解决方…

win10去掉快捷方式小箭头_简单几步,教你怎么去掉win10电脑图标小箭头

Windows通过在桌面图标上增加“小箭头”,来区分它是属于正经的应用程序、文件还是快捷方式。好处能够一目了然的区分桌面显示的内容都是什么。坏处就是对有强迫症、要求统一的用户来说,这个小箭头实在是太碍眼了!如果你属于后者,注…

CIF进口货物流程图_上海关区对外承包工程货物进口报关公司【清关代理吧】

进口清关:退运/返修/一般贸易/对外承包工程专业、专心、专注提供服务上海港/上海海关:对外承包工程进口清关报关有需要看左边:←←←←←←←进口清关报关要注意哪些问题:(同行禁止抄袭及转载)首先:要找一家靠谱、值得…

月均数据_程序员月均薪多少,2019全国互联网行业程序员就业大数据报告

《2019全国互联网行业程序员就业大数据报告》,该报告针对程序员画像、专业背景、职能供需分布、城市分布特征和薪资优势等方面进行分析。作者:子瑜说IT下面,一起来看看,2019年1月-9月程序员的就业现状。01、程序员基础画像“程序媛…

单分支 两路分支和多分支的if结构_JavaScript学习笔记(二)-- 分支结构

分支结构我们的 js 代码都是顺序执行的(从上到下)逻辑分支就是根据我们设定好的条件来决定要不要执行某些代码IF 条件分支结构if 语句通过一个 if 语句来决定代码执行与否a语法: if (条件) { 要执行的代码 }通过 () 里面的条件是否成立来决定…

php 时间格式化_3分钟短文 | PHP获取函数的代码片段,唯有反射最高效

引言为了演示上一篇我们所说的PHP中反射的应用,本篇接着讲反射的应用。因为其特性,是操作函数和方法的,是函数的操作者,类的操作者,所以显得格外重要。我们从一个小需求出发,假如有一段这样的代码&#xff…

电脑屏幕卡住了按什么都没反应_手机突然“死机”了关机也不行,怎么按都没反应,怎么办?...

阅读本文前,请您先点击上面的“蓝色字体”,再点击“关注”,这样您就可以继续免费收到最新文章了。每天都有分享。完全是免费订阅,请放心关注。人有生老病死,手机也可能遇到死机黑屏的问题。在手机众多的“疑难杂症”中…

python中哪里用到缩进_建筑防火中各类门的总结归纳!乙级门?甲级门?都哪里用到了!...

大家在学习防火部分时,会遇到各种场所设置不同耐火性能的防火门,很杂乱的感觉,今天这里就好好总结一下,希望对大家能有帮助!一:双设门1.防烟楼梯间:此处的防烟楼梯间分为两种:一种是…

linux 打开php服务器文件夹,Linux下如何查看文件和文件夹大小

《Linux下如何查看文件和文件夹大小》要点:本文介绍了Linux下如何查看文件和文件夹大小,希望对您有用。如果有疑问,可以联系我们。相关主题:服务器配置1 Linux下查看文件和文件夹大小当磁盘大小超过标准时会有报警提示&#xff0c…

android media apex_APEX英雄主播即将登陆时代广场?人气十强介绍!

5月6日,在经过14天短暂而激烈的战斗后,由小葫芦星球联合海外fanx基金会共同举办的APEX英雄篇主播C位战「人气主播榜」率先顺利收官。而在明天即5月8日中午12点将准时开启本次APEX英雄篇主播C位战支线——「潜力主播榜」,前三强选手也同样能够…

linux php 执行python,Linux(Ubuntu)下php使用exec调用python程序返回json数据

问题起因:解决乱码问题,及解决PHP调用python外部程序的权限问题数据中带有中文,数据来自python读取微软数据库mssql2005 server的数据操作注意事项主要有两点:1.python返回的编码必须为utf-8(1) 必须导入codecs模块,操作代码如…

实时获取滚动条的高度_适用于星上快速处理的雷达高度计有效波高反演技术

卫星雷达高度计的主要观测参数之一为有效波高,数据产品中其数值的确定通过波形重跟踪来实现(Retracking),波形重跟踪的实现主要通过最大似然迭代完成,其主要的反演公示为W(t) PFS(t)*qs(t)*sr(t)。式中包括:高度计海面回波由平坦…

基于python的modbus协议编程_通往未来的网络可编程之路:Netconf协议与YANG Model

近年来,随着全球云计算领域的不断发展与业务的不断增长,促使网络技术也不断发展,SDN技术应运而生,从最初的基于Openflow的转发与控制分离的核心思想,人们不断的去扩展SDN的外延,目前,人们可以达…

mfc color 亮度_双十一4K投影仪怎么选?小心别掉“亮度坑” - 电视

导读:  不少影音爱好者计划在双十一期间购入4K投影仪,组建家庭影院、升级视觉享受,却因为选购产品亮度不足,让期待落空,还耗费时间、精力。投影仪亮度不足,画面看起来像是蒙上一层纱,不清晰&a…

dosbox edit.exe 如何使用_宅家30天,2万字节java高级工程师面试题解析,如何斩获阿里p7...

宅家里一个月,“闭关修炼”的你是不是正在为金三银四跳槽季发愁呢?小编今天说的这富含的15个互联网大厂Java高级工程师核心面试问题整理!内容包括:kafka面试题及解析18道ZooKeeper面试题及解析28道Linux 面试真题及解析45道MySQL面…