我正在编写一个MySQL查询,我有一个疑问:这些代码(下面)哪个更快?我想如果我在“左连接”(第二个代码)中更具体,它应该更快。这种方法是否正确?
curl -s "url" -H "api" | python - c "import sys, json; print;(json.load(sys.stdin)['download_url']);"
OR
services.AddSingleton<HtmlEncoder>(
HtmlEncoder.Create(allowedRanges: new[] { UnicodeRanges.BasicLatin,
UnicodeRanges.Arabic }));
答案 0 :(得分:2)
如果该字段已编入索引, 通常没有太大区别,因为查询优化器会看到您正在查找{{1}中的单个值}(或medicoprocedimento.medicoid
)列。因此,即使您只有medicos.id
子句中的过滤器,它通常在此值之前对执行索引搜索/扫描直接在where
。
也就是说,您应该始终检查执行计划,以确定在您做出选择之前已完成此优化。在运行查询时无法替代实际发生的事情。
答案 1 :(得分:0)
您可以使用EXPLAIN来了解哪一个更快,但您的示例应该相同。
答案 2 :(得分:0)
添加Slimns所说的查询可以简化
SELECT m.*, p.nome AS nomeprocedimento
FROM medicos AS m
INNER JOIN medicoprocedimento AS mp
ON m.id = mp.medicoid
AND m.id = 123
LEFT JOIN procedimentos AS p ON mp.procedimentoid = p.id
我打赌第二个LEFT JOIN
也可以替换为INNER JOIN