Mysql如何优化慢查询

如何优化慢查询

慢 SQL 的优化,主要从两个方面考虑,SQL 语句本身的优化,以及数据库设计的优化。
在这里插入图片描述

1、避免不必要的列
覆盖索引会导致回表,且增大了IO
2、分页优化
深分页解决方案
使用子查询in
使用连接表 left join
使用游标,只能一页一页的翻
3、索引优化
注意索引失效的场景索引失效
4、jion优化
优化子查询
尽量使用 Join 语句来替代子查询,因为子查询是嵌套查询,而嵌套查询会新创建一张临时表,而临时表的创建与销毁会占用一定的系统资源以及花费一定的时间,同时对于返回结果集比较大的子查询,其对查询性能的影响更大
小表驱动大表
适当增加冗余字段
避免使用 JOIN 关联太多的表
5、排序优化
利用索引扫描做排序
6、union优化
MySQL 处理 union 的策略是先创建临时表,然后将各个查询结果填充到临时表中最后再来做查询,很多优化策略在 union 查询中都会失效,因为它无法利用索引
最好手工将 where、limit 等子句下推到 union 的各个子查询中,以便优化器可以充分利用这些条件进行优化
此外,除非确实需要服务器去重,一定要使用 union all,如果不加 all 关键字,MySQL 会给临时表加上 distinct 选项,这会导致对整个临时表做唯一性检查,代价很高。

链接

相关推荐

  1. MySQL查询优化

    2024-01-13 14:48:01       16 阅读
  2. Mysql查询优化

    2024-01-13 14:48:01       11 阅读
  3. MySQL 查询优化案例

    2024-01-13 14:48:01       18 阅读
  4. MySql怎样优化查询

    2024-01-13 14:48:01       15 阅读
  5. MySQL查询优化【二】

    2024-01-13 14:48:01       9 阅读
  6. MYSQL查询优化,提升速度

    2024-01-13 14:48:01       35 阅读
  7. 面试宝典:MySQL 查询优化

    2024-01-13 14:48:01       18 阅读
  8. 面试题-MySQL如何定位查询

    2024-01-13 14:48:01       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-13 14:48:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-13 14:48:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-13 14:48:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-13 14:48:01       18 阅读

热门阅读

  1. SQL常用时间处理函数总结

    2024-01-13 14:48:01       38 阅读
  2. RNN和LSTM的区别是什么?

    2024-01-13 14:48:01       33 阅读
  3. 利用PowerShell和Mkvtoolnix批量去除视频封面

    2024-01-13 14:48:01       41 阅读
  4. 深入理解虚拟DOM:原理、优势与实践

    2024-01-13 14:48:01       28 阅读
  5. 一文读懂Qt信号与槽的机制

    2024-01-13 14:48:01       31 阅读
  6. 传统的背包问题~3479:【例86.4】 混合背包

    2024-01-13 14:48:01       35 阅读
  7. Educational Codeforces Round 160 (Rated for Div. 2)题解

    2024-01-13 14:48:01       32 阅读