日期:2014-05-20  浏览次数:20657 次

■■■■■讨论如何 实现比较快速的读取5000万条数据■■■■■
大家推荐各种方法什么好的办法   实现比较快速的读取5000万条数据

用户需求大概是:ms   sql数据有5000万篇文章   想得到的结果就是读出他们   然后每篇写成一个txt文件。


假设写txt文件需要的时间忽略不考虑   那么如何加快整个过程的速度节省时间呢   谢谢各位的看法

 


------解决方案--------------------
数据库服务器:
1、加大内存,升级 CPU 和 网络设备,采用高速硬盘
2、优化 MYSQL 设置

程序执行:
使用数据库连接池提高读取性能。
------解决方案--------------------
忘了一点,楼主最好先考虑怎么放这 50000000 个文本文件。
------解决方案--------------------
硬件方面的就没社么必要说了
~~5000万文章分成几组~~一个线程去读一个组(比如前1W条 查询)来生成一个文件~~
前提是文章间没有每有嵌套的查询关系,各组间独立
------解决方案--------------------
mark!
------解决方案--------------------
5000W太大了,不可能一次搞掂的,必须分组,分成若干个小部分,每部分用一个线程完成,逐渐细分。批处理数据超过 500条就有明显延迟,5000W,数据库连接早就超时了
------解决方案--------------------
分批读取,并标记读的位置,一旦发生异常,就在异常处重新读取
------解决方案--------------------
在数据库上花点时间吧,比如可以把表进行分区之类的
------解决方案--------------------
或是才去索引文件的方式去进行处理
------解决方案--------------------
如果序号是连续的,可以每次读100-1000条,这样效率估计会高些
------解决方案--------------------
写存储过程会提高一点点,呵呵.我也不会,学习
------解决方案--------------------
考虑以下可不可以预处理一下
------解决方案--------------------
文章是怎么放在数据库里的,格式是什么?
5000w是一个表里的总数据还是要读出来的
------解决方案--------------------
5000w条数据不可能完全存储文章内容吧
一般都是存储文章的路径和名称等信息在数据库啊
lz可以考虑用多线程

------解决方案--------------------
5000w条还是文章???
疯掉了。。。
-------------
写过程。分批处理,1000一批。
不过我觉得瓶颈应该不在数据库。
应该在你写文件上面。所以我觉得读库速度慢并不影响你什么