0

我很想知道调用 aLEFT JOIN而没有什么可加入的查询惩罚是什么。

我有两个表:mainhas .ID.typeand .infoadditionalhas .IDand.more_info

我正在运行这个查询:

SELECT main.*, additional.* FROM main LEFT JOIN additional ON main.ID = additional.ID

我很清楚 70% 的时间,我会查询一个main.type没有附加信息的 - 没有条目,additional但由于限制,我总是必须包含 LEFT JOIN 语句。

这将导致多少查询惩罚(时间)——如果有的话?

EG是:

SELECT * FROM main WHERE type = 'no additional'

将明显快于:

SELECT main.*, additional.* FROM main LEFT JOIN additional ON main.ID = additional.ID WHERE main.type = 'no additional'?

4

1 回答 1

0

你为什么不做基准呢?没有获得比赛不会受到处罚。MySQL 必须扫描连接字段的索引来检查是否有匹配项。

如果有的话,获取连接结果实际上是一种惩罚,因为现在 MySQL 必须挖掘表文件才能带回结果。

于 2013-02-16T23:53:46.467 回答