zoukankan      html  css  js  c++  java
  • 索引优化之Explain 及慢查询日志

    索引:本质是数据结构,简单理解为:排好序的快速查找数据结构,以索引文件的形式存储在磁盘中。
    目的:提高数据查询的效率,优化查询性能,就像书的目录一样。
    优势:提高检索效率,降低IO成本;排好序的表,降低CPU的消耗
    劣势:索引实际也是一张表,该表保存了主键与索引字段,并指向实体表的记录,占用空间;降低更新表的速度(改数据表本身,也需要修改索引);花时间研究建立最优秀的索引。

     索引优化分析主要包括几个部分,其中对Explain关键字进行详细了解。

    Explain关键字:使用Explain 关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。

    Explain能干嘛:表的读取顺序、数据读取操作的操作类型、哪些索引可以使用、哪些索引被实际使用、表之间的引用、每张表有多少行被优化器查询。

    Explain +SQL语句计划执行包含的信息:id |select_type |table |patitions |type |possible_keys |key |key_len |ref |rows |filtered |extra|

     

     二、查询截取分析主要包括5个部分:查询优化、慢日志查询、批量数据脚本、show profile、全局查询日志等信息,这里主要了解了2部分。

    1、查询优化:永远小表驱动大表;Order by ;Group by

    2、慢日志查询

    图表里面主要包括是什么、怎么玩、日志分析工具,从左往右进行查看。

     

    慢查询日志:Mysql提供的一种日志记录,运行时间超过long_querry_time值得SQL,会被记录到慢查询日志中。long_querry_time默认等于10s.

    慢日志具体操作代码如下:

    慢日志查询
    SHOW VARIABLES LIKE 'long_query_time%';#查看慢查询的时间阈值,默认显示为10S
    
    SHOW VARIABLES LIKE '%slow_query_log%';#查看是否开启
    
    set global slow_query_log=1; #设置为1,开启慢查询日志
    
    set global long_query_time=0.001;#设置慢查询的时间为0.001,超过0.001就显示为慢查询
    
    select * from sleep(1); #睡眠1s
    
    show global status like '%Slow_queries';#查询慢查询的条数,需要优化的条数
    
    mysqldumpslow -s r -t /var/lib/mysql/RMT01-slow.log;#路径就是查询是否开启中show_query_log_file的文件路径

     

  • 相关阅读:
    序例化-Externalizable 接口
    线程休眠
    线程优先级
    const & 用法
    AcGePoint3d ads_point 转换
    结果缓冲区 resbuf具体用法
    选择集用法
    引用用法
    通过用户选择获取各种东西
    ARX中类型强制转换
  • 原文地址:https://www.cnblogs.com/wendyw/p/11591983.html
Copyright © 2011-2022 走看看