gpt4 book ai didi

MySQL 查询 - 更好的性能和更具体的 JOIN?

转载 作者:行者123 更新时间:2023-11-29 06:07:51 24 4
gpt4 key购买 nike

我正在编写一个 MySQL 查询,我有一个疑问:这些代码(下面)中哪些代码更快?我认为如果我在“左连接”(第二个代码)中更具体,它应该更快。这种做法是否正确?

SELECT  m.*, p.nome AS nomeprocedimento
FROM medicos AS m
LEFT JOIN medicoprocedimento AS mp ON m.id = mp.medicoid
LEFT JOIN procedimentos AS p ON mp.procedimentoid = p.id
WHERE m.id = 123

SELECT  m.*, p.nome AS nomeprocedimento
FROM medicos AS m
LEFT JOIN medicoprocedimento AS mp ON m.id = mp.medicoid AND mp.medicoid = 123
LEFT JOIN procedimentos AS p ON mp.procedimentoid = p.id
WHERE m.id = 123

最佳答案

如果该字段被索引,通常不会有太大区别,因为查询优化器会看到您正在寻找来自 medicoprocedimento.medicoid 的单个值。 (或 medicos.id )列。因此,即使您只有 where 中的筛选器,它也会通常在执行连接之前对该值执行索引搜索/扫描。子句,而不是直接在 join 中.

也就是说,在您做出选择之前,您应该始终检查您的执行计划以验证此优化是否已完成。没有什么可以替代运行查询时实际发生的情况

关于MySQL 查询 - 更好的性能和更具体的 JOIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40245718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com