提高 mysql 速度?

Improve mysql Speed?

我的 linux 机器上有 mysql/php 脚本 运行。它基本上是将文件内容迁移到 MySql table。大约有 4400,000 个文件,帐户文件每个文件的内容都放在 table 一行中。已经 14 个小时了,到目前为止它只完成了 300,000 个帐户。

起初速度非常快,每秒处理大约 1000 个文件,现在速度减慢到每秒 50 个文件,mysql 进程消耗了 95% 的服务器 CPU。

虽然这台机器有多个核心,但我在想是否可以将一个以上的核心分配给 mysql 进程,该进程消耗了 CPU 的 95%。
或者有没有其他方法可以使这个过程更快?

谢谢。

这是脚本 https://paste.ee/p/LZwlH#GHxpgqiUUPsVQFchdKVny2DEJQxaXH9V

不要使用mysql_*API。切换到 mysqli_*PDO.

请提供这些:

SHOW CREATE TABLE
SHOW VARIABLES LIKE '%buffer%';

select * from players where p_name='——不需要select*,只需SELECT 1。你有 p_name 的索引吗?这很重要。

闻起来像索引更新,但不能确定。

加速插入的一种方法是 'batch' 它们——一次 100 行通常 运行 是一次 1 行的 10 倍。

更好的方法可能是使用 LOAD DATA。您可能需要加载到一个临时文件 table,然后在执行 INSERT .. SELECT .. 之前修改一些东西以将数据放入真实的 table.

暂时从程序中删除 INSERT。看看它有多快 运行s。 (你还没有'proven'认为INSERT是反派。)