表
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='测试';
正常执行。
在条件中 添加了 主表的时间 查询范围后,效果很明显。
网友评论