1000万行数据,每行遍历一遍一个97万行的词典
如题,
一个1000万行的excel文件, 每一行都遍历一遍一个97万行的词典。
如果文件里的词在词典里,则剔除,否则,保留,最后重新生成一个excel文件。
btw,
我用perl处理了一天,实在是太太太特么慢了,不知用sql语句能否更快地处理?
excel并不复杂,只有三列,需要关注的只是第三列的词。
以csv格式文件举例:
文件内容:
"女鞋";"凉鞋_1";"乱世佳人"
"女鞋";"凉鞋_1";"经典传奇"
"女鞋";"凉鞋_1";"坦克世界官网"
"女鞋";"凉鞋_1";"李小璐"
360安全卫士下载
三国杀
4399小游戏大全
追鱼传奇
英雄联盟
qq飞车
3366小游戏
4399赛尔号
搜狗输入法下载
4399造梦西游3
陆贞传奇
360浏览器
5173
植物大战僵尸2
小游戏
梦幻西游
传奇私服
7k7k小游戏大全
英雄联盟官网
奥比岛
CREATE TABLE tableA(col1 NVARCHAR(100), col2 NVARCHAR(100), col3 NVARCHAR(100))
INSERT INTO tableA(col1, col2, col3)
select '女鞋','凉鞋_1','乱世佳人' union all
select '女鞋','凉鞋_1','经典传奇' union all
select '女鞋','凉鞋_1','坦克世界官网' union all
select '女鞋','凉鞋_1','李小璐'
CREATE TABLE tableB(ch NVARCHAR(100))
INSERT tableB(ch)
select '360安全卫士下载' union all
select '三国杀' union all
select '4399小游戏大全' union all
select '追鱼传奇' union all
select '英雄联盟' union all
select 'qq飞车' union all
select '3366小游戏' union all
select '4399赛尔号' union all
select '搜狗输入法下载' union all
select '4399造梦西游3' union all
select '陆贞传奇' union all
select '360浏览器' union all
select '5173' union all
select '植物大战僵尸2' union all
select '小游戏' union all
select '梦幻西游' union all
select '传奇私服' union all
select '7k7k小游戏大全' union all
select '英雄联盟官网' union all
select '奥比岛'
--SQL:
--创建索引
CREATE INDEX IX_tableB_ch ON dbo.tableB
(
ch
)
GO
--把想要的数据筛选出来生成一个新表:tableResult
SELECT *
INTO tableResult
FROM tableA a
WHERE NOT EXISTS
(
SELECT 1
FROM tableB b
WHERE b.ch = a.col3
)