Wordpress数据库选择速度



我选择了从3个表中计算行数,我使用wp函数$wpdb->get_var( $sql ),表中有大约10,000行。有时这个选择需要1秒来加载,有时需要超过15秒。如果我在phpmyadmin中运行这个sql,它总是在不到1秒的时间内返回行数,哪里可能有问题?

您可以做几件事。

首先,对您的查询进行分析。将EXPLAIN放在查询前将输出有关查询的数据,您可能能够发现其中的任何问题。

在这里阅读更多关于EXPLAIN的信息

而且,WordPress可能没有索引最常用的列。

尝试索引一些你在查询中最常用的列,看看是否有帮助。

例如:

ALTER TABLE wp_posts ADD INDEX (post_author,post_status)

插件

你可以尝试像Debug Queries这样的插件,它可以将查询打印到前端,它可以帮助调试需要很长时间的地方。建议只在开发区运行,而不是在活动网站

我还建议连接像New Relic这样的工具,并尝试分析应用程序端发生的事情。如果New Relic不是一个选项,您可以使用xhprof (http://pecl.php.net/package/xhprof)和/或IfP (https://code.google.com/p/instrumentation-for-php/)。在应用程序的生产环境中,很少有查询能像直接SQL查询那样执行相同的操作。可能会有争用、读锁或任何其他原因导致php查询在转到MySQL的过程中有效地停止。在这种情况下,您可能会看到查询运行得非常快,但实际开始从PHP执行该查询所需的时间将非常慢。根据你所说的,你肯定需要分析一下从WordPress到MySQL再到MySQL的过程中发生了什么。我提到的工具都应该对帮助您实现这一目标非常有用。

最新更新