首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当使用load DATA LOCAL INFILE将csv文件加载到MySQL中时,如何限制CPU负载?

当使用load DATA LOCAL INFILE将csv文件加载到MySQL中时,如何限制CPU负载?
EN

Stack Overflow用户
提问于 2015-11-24 14:57:20
回答 2查看 493关注 0票数 0

我在一个php脚本中使用了load data LOCAL INFILE,这样用户就可以将csv文件加载到MySQL中(所有的数据都已经预先转义),这很好也很快,但是当一个脚本这样做的时候,它会使我的CPU负载达到100% --有时高达2-3分钟。

csv文件最多为5000行。

我认为问题的一部分是表现在很大,超过3000万行,所以重新索引使问题变得更加复杂。

有没有办法通过php脚本告诉MySQL限制负载?

谢谢你看一看。

EN

回答 2

Stack Overflow用户

发布于 2015-11-24 15:21:30

在基于Linux的服务器上,您可以使用PHP的proc_nice()函数来降低优先级,尽管有一些限制:

代码语言:javascript
运行
复制
proc_nice(10);

根据您在其中运行脚本的环境,您可能需要在脚本末尾使用proc_nice(0);将优先级设置回正常,以避免被卡在低优先级上。

一种更简单、麻烦更少的方法可能是在每个循环的末尾添加一个sleep()命令,这样处理器就有机会执行其他任务:

代码语言:javascript
运行
复制
sleep(1);
票数 2
EN

Stack Overflow用户

发布于 2015-11-24 18:44:35

请先尝试导入唯一的数据结构,然后再尝试导入可避免延迟或连接丢失的数据。

尝试分块导入数据,而不是一次导入所有数据。这可以帮助您高效、快速地导入数据。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33887251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档