mysql索引优化

数据库优化,分为索引优化,表结构优化,系统配置优化以及硬件优化,其中索引优化成本最低,受益最大

创建索引不宜过多,过多的索引不仅降低insert和update的时间,其实也降低查询时间,数据库在进行查询分析时,首先要判断选用哪个索引,所以越多,分析的越慢

在工作中,我们发现了慢查询,可以添加相应的索引,那么添加索引会遇到哪些问题

1.重复索引:相同的列以相同的顺序,建立同类型的索引

2.荣誉索引:多个索引的前缀列是相同的,或者联合索引包含了主键,innodb每一个索引后面都会跟一个主键

3.无效索引:未命中的索引

以上几点,我们挨个表去查看,当然太费时间,这里推荐一个工具

它就是percona-toolkit,首先进行安装

从官网下载 https://www.percona.com/downloads/percona-toolkit/LATEST/

选择源代码,我这里选择最新的版本percona-toolkit-3.0.8.tar.gz

下载后执行下列命令

# 解压
tar zxvf percona-toolkit-3.0.1.tar.gz
# 移动
mv percona-toolkit-3.0.1/ /usr/local/Cellar/percona-toolkit/3.0.1/
# 进入到安装目录
cd /usr/local/Cellar/percona-toolkit/3.0.1/
# perl编译Makefile.PL文件,生成配置Makefile、MYMETA.yml和MYMETA.json文件,下面是输出信息
# Writing Makefile for percona-toolkit
# Writing MYMETA.yml and MYMETA.json
perl ./Makefile.PL 

# make ,执行Makefile文件
make 

# make test
make test

# make install
sudo make install 

执行make install时需要sudo的权限。执行之后,会看到安装信息:

此外还需要安装mdbd

perl -MCPAN -e "install DBD::mysql"

如果之前没有对CPAN做过配置处理,安装时,会在用户名录下创建一个.cpan的文件下,生成一个配置文件.cpan/CPAN/MyConfig.pm。关于cpan的具体不谈,我们要做的是安装pt。

安装时,会询问:What approach do you want?让你选择local::lib,选项有sudo和manual。这里我们选择sudo即可。
安装时,其一会做test,其二需要把生成的libmysqlclient.dylib放到mysql安装的路径下的lib下,所以需要先安装mysql。

做测试连接时,默认是从/tmp/mysql.sock中与mysql建立socket连接的,但是mac默认的socket路径是/var/lib/mysql/mysql.sock,所以,解决方案就是在/tmp/下建立软连接,或者把在/etc/my.cnf中修改socket的路径为/tmp/mysql.sock

安装DBD::MySQL的时候,建议mysql是正常运行的,这样安装测试时,创建测试账号,执行授权等操作时就可以看出问题。但也可以不启动,最多就是skip过测试。

安装完成。可以通过命令

pt-duplicate-key-checker -u root -p'password' -h 127.0.0.1:3306

来查看你的数据库中,是否存在不合理的索引



有的话,会建议你删除

percona-toolkit还有很多其他工具,这次不做讲解,下篇文章进行分享


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值