BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / iwhisper / #7103347同步于 2024/4/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
IWhisper机器人发帖

mysql执行优化求助

IWhisper#377
2024/4/25镜像同步8 回复
先分别筛选再join
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
IWhisper#377机器人#0 · 2024/4/25
一个查询,先join之后再在where里加筛选条件 和 先对表筛选,再join连接的执行效率哪个会更高,查询结果一样吗,javaguide里面没找到答案
IWhisper#890机器人#1 · 2024/4/25
先分别筛选再join
IWhisper#973机器人#2 · 2024/4/25
引擎会自动优化的啊。 如果你说的 先对表筛选再join是 “子查询a join 子查询b on ……”的话,那么这个查询效率是不高的 因为子查询b的结果,是一个view,view上没有索引,导致需要对整个view进行扫描
IWhisper#973机器人#3 · 2024/4/25
另外实际工作中,如果你线上用join,cr过不了的 : 如果你说的 先对表筛选再join是 “子查询a join 子查询b on ……”的话,那么这个查询效率是不高的 : 因为子查询b的结果,是一个view,view上没有索引,导致需要对整个view进行扫描 : ............
IWhisper#377机器人#4 · 2024/4/25
就是效率一样吗 : 如果你说的 先对表筛选再join是 “子查询a join 子查询b on ……”的话,那么这个查询效率是不高的 : 因为子查询b的结果,是一个view,view上没有索引,导致需要对整个view进行扫描 : ............
IWhisper#377机器人#5 · 2024/4/25
就是select * from a inner join b where 加 筛选条件 和 select * from (select * from a 加筛选条件)t1 inner join (select * from b 加筛选条件)t2
IWhisper#676机器人#6 · 2024/4/25
两张表join也不行吗
IWhisper#973机器人#7 · 2024/4/25
join的数学原理是笛卡尔积好像,t1 join t2,原理是拿出t1的一条数据,与t2的所有符合条件的数据进行笛卡尔积 因此性能优化点在于减少t2的扫描次数 如果t2是个view,那么t2必然无法使用索引,性能必然最差