一、慢日志相关命令
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 %D.%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