我用PHP创建了一些工具,将数据插入到数据库中,有一个上传机制。
但是由于数据库有大约100,000条记录,我需要并行运行几个部分。但是,当我尝试这样做的时候,第二个进程会等到第一个进程完成。
你能帮我解决这个问题吗? 非常感谢。
解决方案:
如果我对评论的理解正确的话,你是想把一些行从一个数据库移动到另一个数据库,固有的延迟意味着顺序操作很慢。
然而,你能够将操作分块。
很好,写一个脚本take需要两个命令行参数,一个是chunk start index,一个是chunk end index。 比如说
php chunkProcessorExample.php 1 100
会处理1-100行的块,就像你在评论中说的那样。
现在,如果你是在Linux上,可以制作一个.sh文件,根据你的需要运行这些脚本,比如说
nohup php chunkProcessorExample.php 1 100 &
nohup php chunkProcessorExample.php 101 200 &
nohup php chunkProcessorExample.php 201 300 &
# Etc etc as you need
如果你愿意,可以写一个PHP文件来生成这个.sh文件,方便你修改参数和并发量。
然后,只要在你需要进行这个大传输的时候运行这个.sh文件就可以了。