sql优化总结

本文探讨了MySQL数据库优化的五大原则,包括减少数据访问、返回更少的数据、减少交互次数、降低CPU开销和充分利用资源。同时,详细解析了SQL查询的语法顺序与执行顺序,强调了最大化利用索引、避免全表扫描和减少无效数据查询的重要性。通过理解这些原则和执行流程,可以有效提升数据库性能。

首先,对于mysql层优化我一般遵从五个原则:

  1. 减少数据访问: 设置合理的字段类型,启用压缩,通过索引访问等减少磁盘IO
  2. 返回更少的数据: 只返回需要的字段和数据分页处理 减少磁盘io及网络io
  3. 减少交互次数: 批量DML操作,函数存储等减少数据连接次数
  4. 减少服务器CPU开销: 尽量减少数据库排序操作以及全表查询,减少cpu 内存占用
  5. 利用更多资源: 使用表分区,可以增加并行操作,更大限度利用cpu资源


总结到sql优化中,就三点:

  1. 最大化利用索引;
  2. 尽可能避免全表扫描;
  3. 减少无效数据的查询;

 SELECT语句 - 语法顺序:

 SELECT 
 DISTINCT <select_list>
 FROM <left_table>
 <join_type> JOIN <right_table>
 ON <join_condition>
 WHERE <where_condition>
 GROUP BY <group_by_list>
 HAVING <having_condition>
 ORDER BY <order_by_condition>
 LIMIT <limit_number>

SELECT语句 - 执行顺序:

FROM
<表名> # 选取表,将多个表数据通过笛卡尔积变成一个表。
ON
<筛选条件> # 对笛卡尔积的虚表进行筛选
JOIN <join, left join, right join...> 
<join表> # 指定join,用于添加数据到on之后的虚表中,例如left join会将左表的剩余数据添加到虚表中
WHERE
<where条件> # 对上述虚表进行筛选
GROUP BY
<分组条件> # 分组
<SUM()等聚合函数> # 用于having子句进行判断,在书写上这类聚合函数是写在having判断里面的
HAVING
<分组筛选> # 对分组后的结果进行聚合筛选
SELECT
<返回数据列表> # 返回的单列必须在group by子句中,聚合函数除外
DISTINCT
# 数据除重
ORDER BY
<排序条件> # 排序
LIMIT
<行数限制>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值