zoukankan      html  css  js  c++  java
  • Effective MySQL之SQL语句最优化——读书笔记之一

    第一章,DBA5分钟速成

    本章知识点如下:

    • 寻找运行慢SQL的语句:
      • show full processlist查看所有正在执行的进程及执行的语句耗时;
      • 命令后面G可以让命令按行显示(默认是按列)。
      • 手动用ad hoc方式执行该sql,大于10ms的查询通常会有问题(有可能是索引问题,也可能是结果集太大使得结果无意义)。
      • 对于低效的Delete和Update语句,可以通过将其改为Select大概判断其效率。
      • 生成执行计划QEP(query excution plan),注意QEP结果不一定是真正的执行结果,如row返回的行数可能是预估数字。
    • 优化查询:
      • 可以添加索引,单不是唯一或最好的方法。添加索引不可以直接再生产环境上进行,因为一个DDL可能执行数日,ALTER语句是阻塞性的;同时索引会带来额外开销。
      • 优化过后需要做验证,QEP及执行ad hoc进行验证。
      • 正确方案:验证表结构(show create table TABLENAME),查看表数据量(show table status like ‘TABLENAME’),从业务角度确认添加索引带来的影响和开销。
      • 备选方案:使用现有索引,在where字句中显示加入索引列条件,使用现用索引。
  • 相关阅读:
    java中的subList
    值传递和引用传递
    java程序中有异常处理和没有异常处理的区别
    正则表达式
    poj 3187 三角数问题
    poj 2718 切数问题 穷竭搜索
    ACM 广度优化搜索算法总结
    poj 3669 火星撞地球问题 bfs算法
    poj 2251 三维地图最短路径问题 bfs算法
    ACM 深度优化搜索算法小总结
  • 原文地址:https://www.cnblogs.com/performancetest/p/7051231.html
Copyright © 2011-2022 走看看