一张表中有50W条记录(也可能上百万),字段有20个左右,现在要把所有记录导出到txt文本,一条记录一行
请问怎么做才能使效率最高????而不使系统挂掉,mysql的数据库,好像没有存储过程吧.
还有我现在的想法是一次读一部分记录写到文件,但是该一下读多少最合适呢? 

解决方案 »

  1.   

    这个具体的数字你要摸索了..我们在服务器上处理数据也是一把5000条,当然这个数字也是我们摸索的结果。
    你可以加rownum<2000;这样的条件来限制返回记录数嘛...
      

  2.   

    你用的是mysql数据库
    你可以分页读取并写入
    如果是oracle数据库的话用工具可以直接导出到Excel文件,用存储过程也可以直接写到文本文件,有相应的方法。我怀疑mysql可能也会有相应的工具吧,呵呵,只是怀疑,不是很熟悉mysql。建议你先到网上找一找有没有工具如果其他办法都没了,再分页写入吧。至于每页多大就要看你系统了
      

  3.   

    用Ant加Groovy应该可以 不用用到服务器资源
    给你一个例子:
    http://blog.csdn.net/jinhuiyu/archive/2008/12/17/3539067.aspx
      

  4.   

    系统用个专门的线程来分页做
    每次读出多少?
    这个得具体看你内存与cpu还有的硬盘转速
    怎么算,俺不会~
    ps:LZ你这个问题问的真没水准,每个系统优化参数100%不一样,自己多试试不就知道了么~哪来那么多运维经验的人呢=。=