数据库索引相关问题

如何定位并优化慢查询Sql

  • 根据慢日志定位慢查询sql
  • 使用explain等工具分析sql
  • 修改sql或者尽量让sql走索引

根据慢日志定位慢查询sql

  1. 查询变量
    SHOW VARIABLES LIKE '%quer%';
    重点关注一下三个变量:


    变量.png
  2. 查询慢查询数量(本次会话,关闭客户端后重置为0)
    SHOW STATUS LIKE '%slow_queries%';
  3. 打开慢日志(数据库重启后失效)
    SET GLOBAL slow_query_log = ON;
  4. 设置1秒为慢查询(数据库重启后失效)
    SET GLOBAL long_query_time = 1;
  5. 重新连接数据库

使用explain等工具分析sql

  1. explain后面加上sql语句
  2. 关注TYPE、EXTRA字段
    2.1 TYPE中出现index或者all,表示全表扫描,需要优化。
    2.2 EXTRA中出现Using filesort或者Using temporary,需要优化

修改sql或者尽量让sql走索引

  1. 使用索引字段进行查询
  2. 对需要查询的字段创建索引

你可能感兴趣的:(数据库索引相关问题)