php - 太多的连接被用于在 mysql 中插入数据

标签 php mysql phpmyadmin

我正在询问 mysql 服务器和 phpmyadmin 中连接过多的问题,因为我的数据库中来自源的每小时数据速度约为 1000。当我在服务器上 TOP 时,mysqld 显示 100-145% 的 cpu 使用率,还有很多 php 线程在那里运行,因为通过 php 脚本插入数据。我的问题是,是否有任何机制可以使连接不溢出并使 mysql 服务器尽可能低地使用 cpu。因为我使用的是 VPS 服务器,但在 vps 上使用另一个应用程序并不是那么有效,因为 mysql 服务器占用 100% 的 cpu。有时 phpmyadmin 崩溃并显示一些民间错误。我已经阅读了查询缓存机制,但它用于缓存相同的选择查询,我应该将其用于插入还是有任何其他优化解决方案类型的队列机制。另外,我不能说什么时候插入数据速度低或高,如果知道那么我可以尝试队列机制。提前致谢!

最佳答案

检查你的代码,看看你是否有类似的东西

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}");

基本上要注意代码中不需要的查询。

关于php - 太多的连接被用于在 mysql 中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10698874/

相关文章:

phpmyadmin - 无法在xampp中启动mysql

mysql - phpmyadmin - 如何在列中添加前缀

php - 使用 PHP 和 mySQL 实现标签系统。缓存帮助!

mysql - 使用以相同字段开头的 GROUP BY 优化多个查询

php - 如何从字符串中提取最后 4 个单词?

MySQL查找仅替换整个数字

php - 使用 PHP 的 MySQL 表循环

php - Ubuntu 上本地的 Nginx phpmyadmin 和 magento 2

php - CSS 和 Javascript 不工作!浏览器无法读取 css 和 javascript 文件

php - WordPress - get_avatar 添加自定义类