搜索
写经验 领红包
 > 家居

数据库冗余查询(mysql数据冗余导致的问题)

导语:分享一款mysql数据库检查冗余索引利器-pt-duplicate-key-checker

概述

关系数据库中的索引越多,对DML操作性能影响越大,所以找出重复的索引并删除索引,对于优化数据库性能,也是一项非常重要的工作。

下面介绍pt中两个检查索引的工具,主要是pt-duplicate-key-checker方面的介绍。

一、检查冗余索引

使用pt-duplicate-key-checker工具检查是否有重复的索引。根据结果,可以看出重复的索引信息,包括索引定义,列的数据类型,以及修复建议。

1、查看某张表的索引结构

show indexes from hr_employee_assign;

可以发现里面有一个重复的索引,HR_EMPLOYEE_ASSIGN_U1和HR_EMPLOYEE_ASSIGN_U2索引就重复了。

2、pt-duplicate-key-checker检测

pt-duplicate-key-checker --host=localhost --user=root --password=7mq47stdmA39JkJ] --databases=fsl_prod --tables=hr_employee_assign

如果要检查整个数据库的话只需要去掉--tables参数就可以了。

二、检查索引使用情况(比较少用)

pt-index-usage工具用于检查索引的使用情况,由于需要对慢日志读取分析,操作有点风险,用得比较少。默认情况下pt-index-usage只建议删除未使用的辅助索引,而不是主索引或惟一索引。

pt-index-usage /data/log/slow.log --host=localhost --user=root --password=xxxx

上面的命令最重要的是pt-duplicate-key-checker了,建议大家重点掌握。觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

本文内容由小芦整理编辑!