什么可能导致"太多的数据库连接"

Tal*_*ili 4 php mysql wordpress

我的Wordpress网站得到了"建立与数据库连接的错误"按摩.

我的主人告诉我这是因为我的"用户"有太多的数据库连接一次打开.这导致错误进行额外的连接,从而进行按摩.

这已通过杀死死锁数据库连接得到纠正.有许多连接将数据复制到临时表,但死锁是由等待一次更新的大量查找引起的.

有人可以向我解释这可能发生的原因,以及如何避免它?

(ps:WP安装有超过2000个帖子)

mar*_*dge 8

我见过的一件事对WP有很大的帮助,数据库速度是清理你的帖子和页面修订数据库.WP保留每个编辑修订版的完整副本,并且对于2000个帖子,您的数据库可能是巨大的.在phpmyadmin中将其作为SQL查询运行以清除修订.我看到数据库大小下降了75%,并在清除修订后运行得更快.如果在安装WP时更改了表前缀,请更改表前缀,并事先运行备份.

DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision'

然后在运行该查询后优化表以完成清除修订,可以从phpmyadmin的下拉菜单中优化整个数据库,也可以通过另一个查询来查找posts表:

OPTIMIZE TABLE wp_posts;
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过将此行添加到wp-config.php以停止修订来防止帖子/页面修订再次累积:

define ('WP_POST_REVISIONS', FALSE);

或者这一行选择要保留的修订数量:

define('WP_POST_REVISIONS', 3);

如果您可以访问MySQL配置文件,请使用GitHub - major/MySQLTuner-perl等实用程序调查MySQL以获得更好的性能.


dan*_*ree 5

在共享托管环境中,当您的博客开始看到更多流量时,这种行为迟早会发生 - 您提到的细节听起来可能与写得不好的WordPress插件有关(为了性能,请确保所有插件随着WordPress核心).

如果您还没有,可能还需要考虑WP Super Cache.