mysql优化

一、慢日志相关命令

1.查看数据库版本

select @@version

2.查看全局变量

show variables like 'slow_query_log'

3.1开启慢日志查询

set global slow_query_log=ON

3.2未使用索引的查询也记录到慢查询日志

set global log_queries_not_using_indexes=ON

4.设置慢查询日志的位置

set global slow_query_log_file=' /usr/share/mysql/sql_log/mysql-slow.log'

5.大于一秒的查询记录到慢日志中

set global long_query_time=1

6.刷新权限。set变量之后要刷新才能生效

flush privileges

7.查看所有日志的变量信息

show variables like '%log%'

 

二、pt-query-digest工具

1.快速安装

wget https://www.percona.com/downloads/percona-toolkit/2.2.16/RPM/percona-toolkit-2.2.16-1.noarch.rpm && yum localinstall -y  percona-toolkit-2.2.16-1.noarch.rpm

2.常用命令

● 查看服务器信息

pt-summary

若成功安装会显示如下结果

 

 

● 查看磁盘开销信息

pt-diskstats

● 查看数据库信息

pt-mysql-summary --user=root --password=123456

 

 

● 分析慢查询日志

pt-query-digest /var/lib/mysql/iZ2ze3ams4xy4ksum98wn1Z-slow.log

● 查看主库和从库的状态

pt-slave-find --host=localhost --user=root --password=123456

● 查看死锁信息

pt-deadlock-logger --user=root --password=123456 localhost

● 从慢查询日志分析索引使用情况

pt-index-usage iZ2ze3ams4xy4ksum98wn1Z-slow.log

● 查询数据库表中的重复索引

pt-duplicate-key-checker --host=localhost --user=root --password=123456

● 查看表和文件当前活动的IO开销

pt-ioprofile

● 查看不同配置文件的差异

pt-config-diff /etc/my.cnf /etc/my_master.cnf

● 查数据库里大于2G的表

pt-find --user=root --password=123456 --tablesize +2G

● 查十天前创建的MyISAM的表

pt-find --user=root --password=123456 --ctime +10 --engine MyISAM

● 查看表和索引大小并排序

pt-find --user=root --password=123456 --printf "%T\t%D.%N\n" | sort -rn

● 打印/杀掉查询时间大于60秒的进程

pt-kill --user=root --password=123456 --busy-time 60 [--print] [--kill]

● 查看授权信息

pt-show-grants --user=root --password=123456
pt-show-grants --user=root --password=123456 --separate –revoke

● 查询冗余索引

pt-duplicate-key-checker -uroot -padmin -h 127.0.0.1

 

三、mysql索引

1.操作索引

● 创建索引

ALTER TABLE table_name ADD INDEX index_name (column_list)
ALTER TABLE table_name ADD UNIQUE (column_list)
ALTER TABLE table_name ADD PRIMARY KEY (column_list)
CREATE INDEX index_name ON table_name (column_list)
CREATE UNIQUE INDEX index_name ON table_name (column_list)

● 删除索引

DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY

 

posted on 2020-09-28 14:28  bofeng  阅读(107)  评论(0编辑  收藏  举报