mysql 联合查询

2018-06-25  本文已影响0人  IBM_LELE

A 表 是主表 有130w 数据。

B 表 是从表  70w 数据

需求

查询从表 中 2017年全年的 一个商品数据, 同时显示出 主表的 订单号 等 一些信息。

B 表 时间 和名称 已经建立 索引。

SELECT b.AddDateTime,b.name,b.orderid

from B  b LEFT OUTER JOIN A  a on b.orderid=a.b_ordernum

where b.AddDateTime BETWEEN '2017-1-1 ' and  '2017-12-31' and b.productname='测试';

运行到120s时,超时。

======

SELECT b.AddDateTime,b.name,b.orderid

from B  b LEFT OUTER JOIN A  a on b.orderid=a.b_ordernum

where  a.b_orderdate BETWEEN '2017-1-1 ' and '2018-1-1' and

 b.AddDateTime BETWEEN '2017-1-1 ' and  '2017-12-31' and b.productname='测试';

正常执行。

在条件中 添加了 主表的时间 查询范围后,效果很明显。

上一篇 下一篇

猜你喜欢

热点阅读