Appearance
对 SQL 慢查询会考虑哪些优化
1、分析语句,是否加载了不必要的字段/数据。
2、分析 SQL 执行计划(explain extended),思考可能的优化点,是否命中索引等。
3、查看 SQL 涉及的表结构和索引信息。
4、如果 SQL 很复杂,优化 SQL 结构。
5、按照可能的优化点执行表结构变更、增加索引、SQL 改写等操作。
6、查看优化后的执行时间和执行计划。
7、如果表数据量太大,考虑分表。
8、利用缓存,减少查询次数。
更新: 2024-06-06 15:39:03
原文: https://www.yuque.com/tulingzhouyu/db22bv/oaarx2tzlroiwu99
短视频
这道超高频面试题你是一定要会的, 那就是慢查询优化, 我给你总结了9点慢查询优化手段:
哈喽大家好我是徐庶,需要面试跳槽找工作的同学我给你们准备一份80万字java面试资料 ! 需要的可以在评论区扣666。平时坐车\睡前零碎的时间刷几道积少成多。
慢查询优化手段我总结了9点:
1、我们一拿到sql, 第一件事情肯定是看一下sql语句也就是要优化sql:
是否加载了不必要的字段/数据。
如果 SQL 很复杂,优化 SQL 结构, 也可以适当的把一些复杂的影响性能的sql段放在代码层去做。
然后我们可以优化索引:
1、先通过explain分析 SQL 执行计划,思考可能的优化一些点,观察一下是否命中索引等等。
2、按照可能的优化点执行表结构变更、增加索引、SQL 改写等操作。
3、查看优化后的执行时间和执行计划,反复调整直至优化到最佳。
但是如果优化完索引还是慢,可能是因为数据量太大。
1、那这个时候可以考虑分库、分表。
2、也可以利用缓存,减少查询次数。
3、业务运行的情况下, 比如统计每天、每月的 也还可以通过定时任务统计到临时表,
3、或者用一些es、mongodb、大数据套件代替。
当然有些sql是为了实现复杂的业务所衍生的:
那如果能在满足用户需求的情况下修改另一种业务实现方式其实也可能会大大简化sql(比如默认让用户查当天,日期必须限定在一个范围)
这几个点记不住的话,记住几个步骤: 先看SQL, 再看索引、 再看数据量、 最后不行修改业务实现、上一些中间件。 当然里面的每一步优化方式都不是一两句话能说清的, 光一个索引优化、explain都够讲几个小时, 如果你想具体听那块内容, 可以打在评论区, 点赞超过50我下一个视频就会详细给你讲! 或者直接加我主页联系方式进行了解。
更新: 2024-06-07 13:50:28
原文: https://www.yuque.com/tulingzhouyu/db22bv/pfy9prbiq7wpc8he