Mysql Wordpress慢速查询
我有一个wordpress博客,我的共享主机公司警告我活动缓慢 在我的mysql slowlog.log中,基本上我的查询需要2秒和3秒(我认为是秒而不是毫秒) 以下是日志中的查询:Mysql Wordpress慢速查询,mysql,wordpress,mysql-slow-query-log,Mysql,Wordpress,Mysql Slow Query Log,我有一个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
# 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;
# 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;
我的问题是:这个查询是核心查询吗?在这种情况下,花费3秒钟是否正常?如果没有,我如何补救?我指的是核心查询,如果它不是生成此查询的插件或主题函数,因为我在theme的function.php中没有找到它
我在日志中有另一个缓慢的查询:
# 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;
# 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 super cache,我的站点加载速度更快,但我在slowlog.log中仍然有这些缓慢的查询
PS:我在一家可靠的hsting公司(infomaniak)工作,他们把我的博客放在专用的VPS机器上15天,让我解决这个问题
谢谢你的帮助,很抱歉我的英语很差
-------------------------------------------编辑---------------------------------------
安装wp super cache后,不可能仍有这些查询:(
这两个查询是核心查询,您不能删除它
最好的方法是使用缓存插件(如wp super cache),好的,我发现了这些查询的问题: 首先,没有核心查询,它们是由一个名为“Yoast WordPress SEO”的插件生成的,确切地说是插件的站点地图部分。“文件:class sitemaps.php”
当我禁用插件的站点地图部分时,我的slowlog.log文件中没有这些查询。我得到的是一个缓慢的查询,这个查询将在哪里出现
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
实际上,我手动将每个页面的帖子数设置为16,你的托管公司是谁?一些便宜的共享托管速度可能非常慢。我从我的网站上运行了3个Wordpress网站,它们运行得很好。我在infomaniak上托管,这非常可靠,他们已经将我所有的博客都放在了专用(VPS)上服务器15天让我解决问题谢谢你的回复,正如我上面提到的,我已经安装并激活了wp超级缓存,但slowlog.log中仍然有新的条目。你认为查询时间:2(2秒)是正常时间还是可疑?我想问题是查询搜索超过36000个结果(你有很多文章)。事实上,我不确定这是post_type='my_post_type'的核心查询原因。请尝试检测主题中是否没有新的WP_查询可以按自定义post type过滤post。我在主页的查询中添加了'my_post_type':$query->set('post_type',array('my post type'));但既然我想在主页上显示my_post_type类型的文章,我该怎么办呢。wordpress不能处理36000篇自定义文章类型的文章吗?:(Wordpress可以,但是你的主机,我不知道,这也取决于你的网站流量。我想问题是:在共享主机上,这些查询的2秒或3秒是Wordpress的正常行为吗?是的,这是因为我在functions.php中使用了url_post_id()函数