zoukankan      html  css  js  c++  java
  • 【MySql】性能优化之分析命令

    当发现程序运行比较慢的时候,首先排除物力资源问题之后,就将注意力转向mysq数据库:

    1、首先通过processlist来查看系统的执行情况:

    mysql> show full processlist;

    2、确认低效的查询:

    select @@profiling;查看是否性能分析开启状态

    set profiling=1; //打开分析

    set profiling=0; //关闭分析

    show profiles; //列表,显示最近发送到服务器上执行的语句的资源使用情况.显示的记录数由变量:profiling_history_size 控制,默认15条

    show profile;  //展示最近一条语句执行的详细资源占用信息,默认显示 Status和Duration两列.

    语法:show profile for query Query_ID //查看指定Query_ID的执行

    3、为sql生成一个执行计划query Execution plan(QEP)

    mysql> explain select * from tbal_name where ...;

    4、查看创建表的语句:

    show create table table_name G;

    5、查看表的状态:

    show table status like 'table_name' G;

    ---------------------------------------------------

    总结一些分析的命令:

    1、explain:解释sql的执行计划,后边的sql不执行

    2、explain partitions :用于查看存在分区的表的执行计划

    3、explain extended:--书上说存在filtered列,但是检查后没有发现这一列,待验证

    4、show warnings:

    5、show create table:查看表的详细的创建语句,便于用户对表进行优化

    6、show indexes :产看表的所有索引,show indexes from table_name,同样也可以从information_schema.statistics表中获得同样的信息。cardinality列很重要,表示数据量。

    7、show tables status: 查看数据库表的底层大小以及表结构,同样可以从information_schema.tables表中获得底层表的信息。

    8、show [global|session]status:可以查看mysql服务器当前内部状态信息。可以帮助却行mysql服务器的负载的各种指标。默认是session。同information_schema.global_status和information_schema.session_status

    9、show [global|session] variables :查看当前mysql系统变量的值,其中一些值能影响到sql语句的执行方式。同information_schema.global_variables和information_schema.session_variables;

    10、information_schema:包含的表的数量和mysql的版本有关系。

     慢日志:

    slow_query_log    :是否开启慢查询日志,1表示开启,0表示关闭。

    log-slow-queries  :旧版(5.6以下版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log

    slow-query-log-file:新版(5.6及以上版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log

    long_query_time :慢查询阈值,当查询时间多于设定的阈值时,记录日志。

    log_queries_not_using_indexes:未使用索引的查询也被记录到慢查询日志中(可选项)。

    log_output:日志存储方式。log_output='FILE'表示将日志存入文件,默认值是'FILE'。log_output='TABLE'表示将日志存入数据库,这样日志信息就会被写入到mysql.slow_log表中。MySQL数据库支持同时两种日志存储方式,配置的时候以逗号隔开即可,如:log_output='FILE,TABLE'。日志记录到系统的专用日志表中,要比记录到文件耗费更多的系统资源,因此对于需要启用慢查询日志,又需要能够获得更高的系统性能,那么建议优先记录到文件。

    g:

    mysql> show variables  like '%slow_query_log%';
    +---------------------+-----------------------------------------------+
    | Variable_name       | Value                                         |
    +---------------------+-----------------------------------------------+
    | slow_query_log      | OFF                                           |
    | slow_query_log_file | /home/WDPM/MysqlData/mysql/DB-Server-slow.log |

    -------------------------

    查看表的存储引擎:

    show create table show table status information_schema.tables可以查看表的存储引擎

  • 相关阅读:
    win10下安装Oracle 11g 32位客户端遇到INS-13001环境不满足最低要求
    kubernetes环境下私有仓库搭建
    Build a Restful Service
    大数据的开始:安装hadoop
    调试Ajax调用的利器firebug
    Oracle Process Cloud流程云实践
    Kubernetes环境下如何运行Coherence缓存集群
    Kubernetes的负载均衡问题(Nginx Ingress)
    Kubernetes master节点的高可用配置
    Kubernetes环境下调整WebLogic JVM基本参数
  • 原文地址:https://www.cnblogs.com/xiaommvik/p/8334785.html
Copyright © 2011-2022 走看看