小编典典

MySQL选择不在表中的位置

mysql

我有2个具有相同主键的表(A和B)。我想选择A中而不是B中的所有行。

select * from A where not exists (select * from B where A.pk=B.pk);

但是,这似乎很糟糕(A中只有10万行,而B中只有3-10k的行大约2秒)

有更好的方法来运行此吗?也许是左派?

select * from A left join B on A.x=B.y where B.y is null;

根据我的数据,运行速度似乎稍快(〜10%),但是总体上呢?


阅读 201

收藏
2020-05-17

共1个答案

小编典典

我以第二个示例的格式使用查询。联接通常比相关子查询更具可伸缩性。

2020-05-17