五千年(敝帚自珍)

主题:【求助】mysql中2个表2个条件怎么写来做选择? -- 铁手

共:💬22 🌺13
全看分页树展 · 主题 跟帖
家园 UNION的速度好像并不慢

我试了一下,好像UNION的速度并不比单一的SQL慢,特别当满足B.cc=23456的行在整个B表中的比率不大的时候。当然表A对aa,表B对aa和cc都要分别建立索引。

对UNION所选结果的排序也可能在内存中排,如果内存够多的话,可以加大MySQL DB 的 sort_buffer_size的值(/etc/my.cnf)。

你可以用下列语句对比一下:

EXPLAIN

SELECT A.aa,A.bb,A.dd

FROM A

WHERE A.aa=12345

UNION DISTINCT

SELECT A.aa,A.bb,A.dd

FROM A INNER JOIN B ON A.aa=B.aa

WHERE B.cc=23456

ORDER BY aa limit 0, 10

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河