Heim > Backend-Entwicklung > PHP-Tutorial > php 将15W的数据写入文件

php 将15W的数据写入文件

WBOY
Freigeben: 2016-06-06 20:35:24
Original
1243 Leute haben es durchsucht

程序的逻辑
1,通过ftp下载300MB左右的文件 数据大概是15W条左右
2,过滤字段,重新写入数据库中
①,先将数据写到文件中
②,mysql使用load_data_infile 来插入数据

现在写入文件的程序逻辑:

读取一行数据
php 将15W的数据写入文件
然后过滤字段,加入数组 到了1000条写入数据库

php 将15W的数据写入文件

写入数据有点慢....有什么能加快速度吗
补充下:整条数据有234个字段

回复内容:

程序的逻辑
1,通过ftp下载300MB左右的文件 数据大概是15W条左右
2,过滤字段,重新写入数据库中
①,先将数据写到文件中
②,mysql使用load_data_infile 来插入数据

现在写入文件的程序逻辑:

读取一行数据
php 将15W的数据写入文件
然后过滤字段,加入数组 到了1000条写入数据库

php 将15W的数据写入文件

写入数据有点慢....有什么能加快速度吗
补充下:整条数据有234个字段

量也不大,写文件的部分没有代码,看不出来什么问题,猜一下吧: 把 fopen 拿到循环外。

写数据库的话,插入的时候用事务。

插入的时候使用存储过程。

把文件拆分成N个小的文件,开N个php进程跑,不就快了?或者直接上java之类的支持多线程的程序跑。

为啥要在循环里面iconv一下?直接放到外面的转编码不行吗

话说,15W条数据,你组合成sql, 1W条一次的写入,写就几秒钟的时间,何必纠结搞什么文件再load_data_infile 呢?

按行操作实在太小气了,如果文件大小有上限的话,干脆用file_get_contentsfile_put_contents来读写,效率会高很多。

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage