1

我有一个 wordpress 博客,我的共享托管公司警告我活动缓慢。

在我的 mysql slowlog.log 中,我有大约需要 2 和 3 的基本查询(我认为秒而不是毫秒)

这是日志中的查询:

# Query_time: 2  Lock_time: 0  Rows_sent: 25  Rows_examined: 36266
    SELECT l.ID, post_content, post_name, post_author, post_parent, post_modified_gmt, post_date, post_date_gmt
                    FROM (
                        SELECT ID FROM wp_posts 
                            WHERE post_status = 'publish'
                            AND post_password = ''
                            AND post_type = 'my_post_type'

                            ORDER BY post_modified ASC
                            LIMIT 25 OFFSET 9925 ) o
                        JOIN wp_posts l
                        ON l.ID = o.ID
                        ORDER BY l.ID;

我的问题是:这个查询是核心查询吗?在这种情况下需要 3 秒是正常的吗?如果没有,我该如何补救?如果它不是生成此查询的插件或主题函数,我的意思是核心查询,因为我没有在主题的 function.php 中找到它

我在日志中有另一个慢查询:

# Query_time: 2  Lock_time: 0  Rows_sent: 1  Rows_examined: 29232
SELECT post_modified_gmt FROM wp_posts WHERE post_status IN ('publish','inherit') AND post_type = 'my_post_type' ORDER BY post_modified_gmt ASC LIMIT 1 OFFSET 2999;

这里有同样的问题,它是核心查询还是插件相关的等等......

请注意,我已经安装了 WP 超级缓存,我的网站加载速度更快,但在 slowlog.log 中仍然有这些慢查询

PS:我在一家可靠的 hsting 公司 (infomaniak),他们已将我的博客放在专用 VPS 机器上 15 天让我解决问题

感谢您的帮助,并为我的英语非常糟糕感到抱歉

- - - - - - - - - - - - - - - - - - - - - -编辑 - - - ---------------------------------

安装 wp 超级缓存后,这些查询再也没有办法了 :(

# Query_time: 2  Lock_time: 0  Rows_sent: 25  Rows_examined: 49908
SELECT l.ID, post_content, post_name, post_author, post_parent, post_modified_gmt, post_date, post_date_gmt
                FROM (
                    SELECT ID FROM wp_posts 
                        WHERE post_status = 'publish'
                        AND post_password = ''
                        AND post_type = 'my_post_type'

                        ORDER BY post_modified ASC
                        LIMIT 25 OFFSET 23550 ) o
                    JOIN wp_posts l
                    ON l.ID = o.ID
                    ORDER BY l.ID;
4

3 回答 3

2

好的,我发现这些查询有什么问题:

首先,它们不是由名为“Yoast WordPress SEO”的插件生成的核心查询,该插件正是该插件的站点地图部分。“文件:class-sitemaps.php”

当我禁用插件的站点地图部分时,我的 slowlog.log 文件中没有这些查询。

于 2013-04-15T17:03:29.353 回答
0

这两个查询是核心查询,不能删除。

最好的方法是使用缓存插件(如 wp 超级缓存),

于 2013-04-12T09:54:10.573 回答
0

我将其视为慢查询,该查询将在该查询中命中

SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10

实际上我手动设置posts_per_pages为16,

于 2019-05-15T13:07:06.173 回答