php - 同时运行php脚本

标签 php shell concurrency

我正在尝试使用脚本来处理大量的dta记录,我们将其命名为process.php,问题是我有一个巨大的数据集,为了使工作完成得更快,我想运行多个实例该脚本的内容为

/usr/bin/php process.php start_record end_record &

所以我会让它们并行运行

/usr/bin/php process.php 0 10000 &

/usr/bin/php process.php 10000 20000 &

/usr/bin/php process.php 20000 30000 &

/usr/bin/php process.php 30000 40000 &

...

我以为这样可以更快地完成工作,但是尝试后并没有发现更快,相反速度似乎非常接近线性方式(无并发)。我不知道是不是因为process.php正在将记录插入到innodb表中或者什么原因。

任何想法。

最佳答案

如果您需要将行插入数据库,那绝对没有什么区别。数据库才是瓶颈,而不是 PHP 脚本。您仍然一次只能插入一行,因此每个并发实例只需互相等待。

关于php - 同时运行php脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3341761/

相关文章:

linux - 从命令行导入 PostgreSQL CSV

iphone - 使用多个 CoreData NSManagedObjectContext 时是否需要实现 NSManagedObjectContext 通知?

php - Symfony2 - 在 Twig 中获取一个实体而不是 PersistentCollection

php - 如果我使用 AWS rds 作为数据库实例,是否需要在 AWS EC2 上安装 mysql?

php - Laravel 5.5 验证 hasMany 关系

c# - 对正确使用 Async/Await 的困惑

java - 在处理事物时创建模态 JDialog

php - 使用 SendGrid (PHP) 设置抄送参数的多个电子邮件地址

bash - 从文件中删除重复的行 block

xml - 提到开始和结束模式时,sed 正在删除多行