2010-05-25 171 views
4

我已经创建了一个php脚本来将rss feed导入数据库。必须将数量巨大的数据源(从2004年到2010年,大约200万条记录)插入数据库。我一直在浏览器中运行脚本,但它插入的速度(大约每秒1次),我怀疑它需要另外20-25天来输入这些数据,即使我每天运行它24小时。我已经尝试过在同一时间在不同的浏览器窗口上运行,并且在过去两天内只完成了70000条记录。我不知道如果我同时运行10-12个实例,服务器会如何反应。如何通过命令行在服务器上运行php脚本

我客户端的程序员说我可以通过命令行直接在服务器上运行它。任何人都可以告诉我,如果我通过命令行运行它会产生多大的差异?还有什么命令行语法来运行它?我在Apache,PHP/MySQL。我在网上尝试了一个类似的答案,但他们似乎让我感到困惑,因为我不是系统管理员,或者在linux中很好,尽管我已经完成了像svn仓库这样的任务,并且在服务器上安装了一些apache模块,所以我希望如果有人告诉我如何去做,我可以管理这个。

回答

8

速度差异:最小。你所节省的所有资源都会阻塞在NET I/O和连接上(以及可以忽略的Apache开销)。

如何做到这一点:

bash> php -f /path/to/my/php/script.php 

您可能只拥有php5-mod包安装的是Apache的PHP,你可能需要安装实际的命令行解释,但很多发行版的同时安装。我个人认为你在算法中有一个效率问题。某些需要数天和数天的事情似乎可以通过缓存最坏情况性能分析(Big-O符号)来加速。另外,php香草不是很快,有很多方法可以让它真的很快,但是如果你在做繁重的计算,你应该考虑c/C++,C#/ Mono(也许),可能是python(可以预先编译,实际上可能不会更快)。

但强烈建议您探索这些其他网点。

0
在linux

php -f file.php 

php --help 

其他选项

1

要运行在命令行PHP脚本只是执行:

php yourscript.php 

如果你想保持这一进程在后台运行做:

php yourscript.php & 

然后,您可以运行在多个进程同时。要确定当前正在运行的执行脚本的实例:

ps aux | grep yourscript.php 

但是,如果你认为它的时间太长,试图找出是否有一个在你的代码中的任何瓶颈并优化它。

相关问题