数据库——SQL慢查询原因及相关优化方法(概念入门篇)

概述

以前做项目一直没有SQL优化的概念,直到真正接触到这方面的知识和内容,才发现实际应用上有多重点,此处简要介绍一下关于SQL慢查询的内容,主要是为了有一个大致的概念。

慢SQL的特征

  1. 数据库CPU负载高
  2. IO负载高导致服务器卡住
  3. 查询语句正常,索引正常但是还是慢

慢查询的原因

出现慢查询有许多原因,一下是常见的一些原因。

  1. 没有使用索引或索引没起作用(SQL编写问题)
  2. I/O吞吐量小;内存不足;网速慢(硬件等问题)
  3. 查询结果较大;返回不必要的值(SQL编写问题)
  4. 锁使用不合理或出现死锁情况(SQL编写问题)
  5. 查询语句未优化(SQL编写问题)

部分SQL调优方法

  1. 不要使用 select *
  2. or 的查询尽量用 union 代替
  3. 删除表所有记录用 truncate,不要用 delete
  4. 不让 mysql 干多余的事情,如计算
  5. 尽量少用视图,它的效率低
  6. 没有必要时不要用DISTINCT和ORDER BY,这些动作可以改在客户端执行
  7. SELECT COUNT(*)的效率教低,尽量变通他的写法,而EXISTS快
  8. 尽量选择区分度高的列作为索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值