欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql索引优化

程序员文章站 2022-03-08 17:38:46
...

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

创建索引不宜过多,过多的索引不仅降低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

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

mysql索引优化


有的话,会建议你删除

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