zoukankan      html  css  js  c++  java
  • 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	%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
  • 相关阅读:
    缓存在高并发场景下的常见问题
    如何提高缓存命中率
    修改或隐藏nginx的版本号
    centos7使用docker安装zabbix
    Handsontable 新增一行 默认值
    java保留有效数字
    Handsontable通用方法
    handsontable插件事件
    handsontable常规配置的中文API
    handsontable的核心方法
  • 原文地址:https://www.cnblogs.com/naixin007/p/13744536.html
Copyright © 2011-2022 走看看