我正在讨论mysql服务器和phpmyadmin中太多的连接,从我的数据库中的源到每小时~1000的数据速度。当我在服务器上运行时,mysqld显示了100%-145%的cpu利用率,还有很多php线程正在运行,比如通过php脚本插入数据。我的问题是,是否有任何机制使连接不溢出,而mysql服务器利用cpu越低越好。因为我使用的是vps服务器,但是在VPS上使用另一个应用程序并不那么有效,因为mysql服务器占用100%的cpu。有时phpmyadmin崩溃并显示一些民间错误。我读过查询缓存机制,但它用于缓存相同的select查询,如果将其用于insert,或者是否存在其他最佳解决方案类型的队列机制。另外,我不能说插入数据速度是低还是高的时间,如果它知道,那么我可以尝试队列机制。提前感谢!
发布于 2012-05-22 09:12:31
检查你的密码,看看你有没有类似的东西
for($i = 0; $i < 10000; $i++) // basicly long loop with inserts
mysql_query("INSERT INTO table_name (id, value) VALUES ({$i}, 100)");这应该被修改成
$arr_values = array();
for($i = 0; $i < 10000; $i++)
$arr_values[] = "({$i}, 100)";
$str_values = implode(', ', $arr_values);
mysql_query("INSERT INTO table_name (id, value) VALUES {$str_values}");基本地,要注意代码中不必要的查询。
发布于 2012-05-22 09:08:32
您应该从以下链接了解“查询缓存”的基本知识
https://stackoverflow.com/questions/10698874
复制相似问题