我在 php 脚本中使用 LOAD DATA LOCAL INFILE,这样用户就可以将 csv 文件加载到 MySQL 中(所有数据都已预转义),这既好又快,但是当脚本这样做时,它会刺激我的在该过程发生时 CPU 负载达到 100% - 有时长达 2-3 分钟。
csv 文件最多 5000 行。
我认为部分问题是该表现在有 3000 万多行,因此重新索引使问题更加复杂。
有没有办法通过php脚本告诉MySQL限制负载?
感谢您的关注。
最佳答案
在基于 Linux 的服务器上,您可以使用 PHP 的 proc_nice()降低优先级的功能,尽管有一些限制:
proc_nice(10);
根据运行脚本的环境,您可能需要在脚本结束时使用 proc_nice(0);
将优先级设置回正常,以避免 PHP 卡在低优先级。
一个更简单和更少麻烦的方法可能是简单地添加一个 sleep()在每个循环结束时执行命令,以便处理器有机会执行其他任务:
sleep(1);
关于php - 使用 LOAD DATA LOCAL INFILE 加载 csv 文件到 MySQL 时如何限制 CPU 负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33887251/