1
liprais 2019-11-28 10:24:33 +08:00
你先搞明白 mysql 的 query 是怎么执行的
|
2
kifile 2019-11-28 10:24:44 +08:00
这个涉及到一些条件下推的优化了,目前的大数据计算的类 sql 引擎应该都有做,mysql 就不清楚了
|
4
findmyself 2019-11-28 10:33:03 +08:00
先问是不是 再问为什么
|
5
daozhihun 2019-11-28 10:40:07 +08:00
@kifile 我们之前给 sql server 做优化的时候,有一种优化策略就是先过滤再 join,印象中把 30s 的报表查询能优化到 5s 以内。
当然大多数情况建好合理的索引然后交给引擎自己判断就好了,到有性能问题的时候再分析执行计划针对性的优化 |
6
reus 2019-11-28 10:58:27 +08:00 2
执行引擎会分析并优化,“网上文章”说的不一定对,可能某个旧版的 mysql 的执行引擎很傻,被作者当作不变的真理了。
官方文档就有这些内容: https://dev.mysql.com/doc/refman/8.0/en/execution-plan-information.html 不要总是看一些二手文章,过时文章,或者别人转述的二手知识。 |
7
qgs 2019-11-28 11:09:00 +08:00
mysql5.6 开始支持 ICP 优化
|
8
lihongjie0209 2019-11-28 11:09:31 +08:00
|
9
CStarter 2019-11-28 12:22:20 +08:00 via Android
楼主了解一下 join 和 straight_join 的区别
|
10
zmxnv123 2019-11-28 12:45:17 +08:00
楼主估计不是科班出身
|
11
kifile 2019-11-28 13:13:42 +08:00
自己 Explain 一下,看看执行计划不是就挺明白了的吗?
|
12
GroupF 2020-10-31 16:20:51 +08:00
谨记,独立思考
|