提高mysql速度?

时间:2016-05-02 15:15:32

标签: php mysql linux performance process

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

起初它速度非常快,每秒大约需要1000个文件,现在速度减慢到每秒50个文件,而mysql进程占用了95%的服务器CPU。

虽然这台机器有多个核心,但我在考虑是否有可能为mysql进程分配多个核心,而这个进程占用了95%的CPU。
或者还有其他方法可以让这个过程更快吗?

谢谢。

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

1 个答案:

答案 0 :(得分:0)

使用mysql_* API。切换到mysqli_*PDO

请提供以下信息:

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

select * from players where p_name=' - 无需选择*,只需SELECT 1。你有p_name的索引吗?这非常重要。

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

加速插入的一种方法是“批量处理” - 一次100行,通常一次运行10次。

更好的方法是使用LOAD DATA。您可能需要加载到临时表中,然后在执行INSERT .. SELECT ..之前按摩内容以将数据放入真实表中。

暂时从过程中删除INSERT。看看它运行的速度有多快。 (你还没有'证明'INSERT是恶棍。)