SELECT L.optime,L.operater,L.program,L.storecd,L.macid,L.mobileip,T.storecd
FROM LogOperates_201207 AS L
JOIN mst_ipaddress AS T
ON L.mobileip = T.mobileip我有2个表,LogOperates_201207,mst_ipaddress
其中LogOperates_201207表中有近2千万条数据,mst_ipaddress 中有700条数据,
我想利用mobileip字段,ON L.mobileip = T.mobileip 将符合条件的数据取出来,
其中mobileip为索引,但是却足足花了1分钟时间才把匹配的数据取出来,大家有没有更好的方式
利用最短的时间把数据取出啦呢
我想改善一下速度,能更快的取出数据
希望大侠们帮忙
FROM LogOperates_201207 AS L
JOIN mst_ipaddress AS T
ON L.mobileip = T.mobileip我有2个表,LogOperates_201207,mst_ipaddress
其中LogOperates_201207表中有近2千万条数据,mst_ipaddress 中有700条数据,
我想利用mobileip字段,ON L.mobileip = T.mobileip 将符合条件的数据取出来,
其中mobileip为索引,但是却足足花了1分钟时间才把匹配的数据取出来,大家有没有更好的方式
利用最短的时间把数据取出啦呢
我想改善一下速度,能更快的取出数据
希望大侠们帮忙
--给mobileip字段加上索引
--然后测试一下
SELECT
L.optime,L.operater,L.program,L.storecd,L.macid,L.mobileip,T.storecd
FROM LogOperates_201207 AS L
JOIN mst_ipaddress AS T ON L.mobileip = T.mobileip
where L.mobileip is not null
--右边数据少,在有索引的情况下,右连接应该比较快一点
--#2代码有误,请无视
select
L.optime,L.operater,L.program,L.storecd,L.macid,L.mobileip,T.storecd
from LogOperates_201207 L
right join mst_ipaddress T on L.mobileip = T.mobileip
我感觉主要是 LogOperates_201207
左边的数据量太大了,
其实我是想实现这样的功能的根据mst_ipaddress中的mobileip 去抽出LogOperates_201207 相符合的数据的一条
(`用mst_ipaddress中的mobileip 去抽出LogOperates_201207的时候有很多条)
这一条数据的条件就是 根据时间 optime 去获取最近一天的值。这个可以根据mst_ipaddress的 值去循环 取LogOperates_201207 的值,
就是用游标。但是LogOperates_201207 的值太大,游标太慢大家还有什么方法去取相符合的数据的呢,不用游标,要速度快的方法