【发布时间】:2017-03-06 12:10:06
【问题描述】:
MYSQL 插入记录耗时过长
我有 32 GB RAM 专用服务器,它几乎不使用高达 15% 的 CPU 和 20% 的内存,即使同时执行 5 个 crons。
问题是,有一个 PHP 脚本有简单的 200 行代码和一些基本的计算和总共 3 个查询
选择并插入 12 列(4 为整数,8 为 varchar 数据类型)
每天执行一次,插入记录约280000到300000条记录,平均执行时间为5-6小时。
问题:
1) 为什么只插入 3 条缺失记录需要 5-6 小时?
2) 为什么它没有使用太多资源、RAM 和 CPU?
3) 有没有限制mysql执行的配置?
服务器详情: 总共 4 个处理器,每个处理器都有 Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz 高速缓存 8192 KB 32 GB 内存
请帮我解决问题
【问题讨论】:
-
对于大型导入使用
LOAD DATA INFILE。快得多。 -
为什么?如果没有看到您的代码或插入的数据类型,我们怎么可能知道。可能是磁盘速度、网络速度、太阳斑......
-
感谢 Daan,但我使用其他表进行计算和插入基于比,而不是从其他文件导入任何内容
-
只需将所有内容写入脚本中的
.csv文件即可。完成创建.csv后,再执行LOAD DATA INFILE。 -
@DavidG 代码只有 200 行,对选定的数据进行了一些简单的减法和加法运算,然后插入到另一个表中,该表有 12 列,每列最多 200 个字符限制
标签: php mysql sql-server cron dedicated-server