数据库sql及索引优化

发现问题

  • 使用mysql慢查日志,对有效率的问题sql进行监控
  • 慢查日志分析工具mysqldumpslow,pt-query-digest
    数据库sql及索引优化_第1张图片

    原则:查询次数多且每次查询时间长的sql
    IO大的sql(扫描的行数多)
    未命中索引的sql(扫描行数远大于返回的行数)

优化

sql优化

  • explain查询sql的执行查询
    这里写图片描述

    数据库sql及索引优化_第2张图片

    数据库sql及索引优化_第3张图片

  • max()查询 ——-》增加索引
  • count ()查询 ——-》区分count(* or null)与count(id)
  • 子查询优化为join查询
  • group by 优化
    数据库sql及索引优化_第4张图片

  • limit优化(常常伴随order by从句使用)
    -
    这里写图片描述

索引 优化

索引可以优化查询效率但是降低写入效率

数据库sql及索引优化_第5张图片

1, 重复索引  (主键id和unique(id)相当于定义了两次索引)
2,冗余索引  (主键id和key(name,id))
  • 查询索引
    数据库sql及索引优化_第6张图片
  • 删除不用的索引

你可能感兴趣的:(数据库设计)