找回密码
 加入
搜索
查看: 4843|回复: 12

[效率算法] <已解决>比对两张表的数据哪里有差异,数据量较大时,选用哪种方式比较效率?

 火.. [复制链接]
发表于 2012-3-29 17:11:47 | 显示全部楼层 |阅读模式
本帖最后由 qiu491996004 于 2012-4-13 10:01 编辑

比对两张表的数据哪里有差异,数据量较大时,选用哪种方式比较效率?
有两个文件(一张.csv格式,一张.txt格式),分别保存货物信息,且都有10000多行,采用什么方式比对会效率一些,最后输出哪些行的数据不一样。
数据格式如下:

现在想的方式有:
1.将两张表文件全部导入SQLite数据库后,再通过查询语句分别查出来进行对比
2.在一张表文件中读一条数据,再在另一张表文件中找相应的行,再对比
请问下哪种效率高呢?

其他的大大们有没有其他的方式或方法,来对比两个文件中的数据呢?

万分感谢!搞出来后将贴出最后结果与大家分享,希望大家多多分享与帮助哈!

之前给了几组数据,由于后来这个批次所有的数据没拿到,没办法进行测试  我把写的一个大概贴出来分享下吧,谢谢大家了,真是不好意思啊!
   

上面要用的话还要修改下的
再次谢谢大家的热心!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-3-29 20:19:56 | 显示全部楼层
应数据库速度快
大侠会用数组比较,偶不会,我一般是导入数据库再比较
发表于 2012-3-30 00:13:36 | 显示全部楼层
$hTimer = TimerInit()

$iDiff = TimerDiff($hTimer)

加上这个让它自己算算时间吧。
发表于 2012-3-30 08:16:01 | 显示全部楼层
个人认为全部读取数据后,  再正则提取每2条相关数据作比较的效率最高.
 楼主| 发表于 2012-3-30 08:59:01 | 显示全部楼层
回复 4# user3000

这个想法挺不错的,就是怕放一个字符串中放不下
发表于 2012-3-30 09:07:52 | 显示全部楼层
回复  user3000

这个想法挺不错的,就是怕放一个字符串中放不下
qiu491996004 发表于 2012-3-30 08:59


一个放不下, 可以分几段读吧.
发表于 2012-3-30 11:01:36 | 显示全部楼层
请上传样本.大家好做样本测试
 楼主| 发表于 2012-3-30 11:10:10 | 显示全部楼层
回复 7# 3mile

这个信息都是公司内部保密的,传上去不大好的,不好意思哈,这个估计还是要靠自己的,欢迎大家提供思路,最后的时候我再总结一下下次的收获,给大家做个参考。
上面放的图也是大概说一下数据的格式,使要表达的内容好理解一点,
发表于 2012-3-31 02:11:21 | 显示全部楼层
其實 機密也沒那麼嚴重吧....如果是我 我就會把一些重要的字眼拿掉.....然後上傳樣本....沒樣本應該也不好談 哪種方式快吧.....不過如果是我  我也會選擇導入數據庫來處理 呵呵
 楼主| 发表于 2012-3-31 10:02:54 | 显示全部楼层
回复 9# kk_lee69

在银行工作 很多是客户的信息  还是安全点好   第一次写数据库的  刚弄好一个  下面准备写文件读取数组处理的对比下 数据库大致思路是将两个文件导入同一张表,并加一列标志(0为文件A导入,1为文件B导入) 再通过Select XXX From XXX Group By XXX having XXX来查询相同的,将其删掉,剩下的就是文件A与文件B中不相同的所有数据了
发表于 2012-3-31 14:03:40 | 显示全部楼层
本帖最后由 kk_lee69 于 2012-3-31 14:05 编辑

回复 10# qiu491996004

資料庫與法用到 HAVING 速度就慢了 最好不要這樣用... 最好用兩個表 然後串起來得到你要的結果 這樣速度快
发表于 2012-3-31 18:00:34 | 显示全部楼层
回复 4# user3000

这可不一定,情况太复杂,想想看如果是几万条数据只改一条的情况,和几万条数据改几千条数据的处理肯定是不一样的,正则无疑是批量处理的好办法,但是如果第一种情况,不是大材小用,简直是浪费
发表于 2012-4-2 14:51:55 | 显示全部楼层
回复 8# qiu491996004


    提供一个数据的格式就行了 平时处理到的大概会有多少行 剩下的内容我们自己照格式随便乱填充。敏感关键词随便找个阿猫阿狗的代替就是了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-20 21:52 , Processed in 0.081811 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表