SQL执行慢分析及SQL语句优化

1.SQL语句执行速度慢

一个SQL语句执行的速度很慢, 分两种情况讨论:

  • 大多数情况下很正常, 偶尔很慢, 则有如下原因:

    1. 数据库在刷新脏页
    2. 执行的时候, 遇到锁, 如表锁, 行锁
  • 一直执行很慢, 则有如下原因

  1. 没有用上索引: 例如该字段没有索引, 由于对字段进行运算, 函数操作导致无法使用索引
  2. 数据库选错了索引

2.SQL语句的优化

  1. 设置合适的字段属性

    字段的长度越小, 占用的内存越小, 性能就越好; 例如,中国的手机号码为11位, vachar的长度设置为11位即可

  2. 使用join语法

    join语法分为内连接, 左(外)连接, 右(外)连接

  3. 尽量少使用select *

    select *会进行全表查询, 消耗的性能较大

  4. 在查找唯一一条数据的时候, 使用limit 1, 在查找到数据的时候会终止查找

  5. 使用limit分页

  6. 尽量少使用排序order by, order by DESC, order by ASC

  7. 避免进行类型转换

  8. 使用索引

    • 优点: 加快索引速度

    • 缺点: 创建索引和维护索引需要耗费时间和精力

      ​ 索引需要占用空间

      ​ 进行数据的增删改查时需要动态维护索引

请作者喝瓶肥宅快乐水