php搞这个程序简单,运行麻烦
php shell

解决方案 »

  1.   

    /*
    *有什么最简单的方法完成这个工作?
    *
    1.含有中文(gb2312)
    2.B的记录10万~50万,A在5000~8万
    需求:
    1.找出B中和A具有相同 CRC and bytes 的记录,导出
    2.找出A或B中两者 CRC or bytes 不同的记录,导出
    (不宕机就行,运行个把小时都可以)
    */简单的方法,全文比较,如果放到一个文件中处理估计大部分机器会'宕机',
    看了上述数据量,建议把A,B两文件分成若干分,再接下去操作数据比较;
      

  2.   

    How about import data into db first and then query ??
      

  3.   

    如果在unix/linux上,用sort和diff或者awk都行
      

  4.   

    导入数据库.
    用SQL语句查询出 相同记录.
    再排除查询.
      

  5.   

    csv导入sqlserver数据库很容易,在数据库里进行操作很快。
      

  6.   

    在各位启发下,初步用access实现了10万的比较,抽时间看看50万会不会死,呵呵因为单机没有sql或相关数据库,所以就选用access去做
    如果在unix/linux上,用sort和diff或者awk都行
    ---------------------------------------
    这个因为不懂linux,不过也会作为知识记下来将来备用
      

  7.   

    如果在unix/linux上,用sort和diff或者awk都行
      

  8.   

    嗯。用Excel做,真是是很快。一个vlookup函数就可以搞定。不过,Excel里面好像有行数限定,几十万行,好像不行。我PHP的做法,先锁住二个文件,读大文件,循环大文件行读小文件,对比然后写入。都采用指针方式,读一行移动一下指针,这样,不用占很多内存的。其实也可以情况而定,读入到一个数组,在内存里面循环其实更快。需要对比测试之后才知道哪个更快:)
      

  9.   

    刚想到用mssql的企业管理器是最好的啦。选择导入数据,将二个文件分别导入不同的表然后只需要写查询语句,就可以查出你想要的数据。然后,将数据复制导出就不用说了吧。关联查询语句更不用说。此方法。不用十分钟,就可搞定。哈哈
      

  10.   

    还有更厉害的一招。就是用ACCESS的键接表来做。ACCESS有一个功能就是可以使用链接表(表是从别的文件链入的)在ACCESS里点新建,链接表,找到A文件,指定表头,一步步,一个对应A文件的表就生成了。而且,这个表的内容是只读的,会跟着A文件的内容变化而变化的。同样的道理,去做B文件。然后又回到SQL语句部分了做法,同上面MSSQL一样:)此方法,比上面麻烦一点,但很方便,只需做一次,因为使用的是链接表:)