提高大型数据库上wp查询性能

时间:2021-02-26 作者:user2532600

我的数据库中有100000条记录,执行了很多元查询,所以执行操作需要很多时间,如何加快速度?

加载此查询需要20到25秒。

SELECT wp_posts.ID
FROM wp_posts
INNER JOIN wp_postmeta
ON ( wp_posts.ID = wp_postmeta.post_id )
INNER JOIN wp_postmeta AS mt1
ON ( wp_posts.ID = mt1.post_id )
INNER JOIN wp_postmeta AS mt2
ON ( wp_posts.ID = mt2.post_id )
WHERE 1=1
AND ( ( ( wp_postmeta.meta_key = \'profe\'
AND wp_postmeta.meta_value = \'magic\' )
AND ( mt1.meta_key = \'country\'
AND mt1.meta_value IN (\'uae\',\'uk\',\'usa\') )
AND ( mt2.meta_key = \'chargesof\' ) ) )
AND wp_posts.post_type = \'magicposts\'
AND ((wp_posts.post_status = \'publish\'))
GROUP BY wp_posts.ID
ORDER BY CAST(mt2.meta_value AS SIGNED) ASC
LIMIT 0, 12

1 个回复
SO网友:E Allison

我正在照看的商店也有很多大型查询,对我们来说,解决方案是一个经过WP优化的托管提供商,它具有litespeed缓存和足够的资源(RAM)来处理查询。

对于总是相同的查询,我也使用瞬态。对于瞬态,查询只运行一次,然后存储到瞬态过期。看见https://developer.wordpress.org/apis/handbook/transients/. 第一次查询仍然需要时间;但后续访问者可以使用存储的查询结果。

相关推荐

对从MySQL提取的数据进行条件格式设置

我不是PHP方面的专家,我正在尝试对从wpdb获取的数据应用条件格式。公平地说,我正在尝试为此创建短代码。我的座右铭是为$previous\\u marks&;获取价值$从数据库中删除current\\u标记,并根据if、else条件更改$current\\u标记的颜色。根据情况:如果$当前标记$前一个\\u标记,则$current\\u标记的值应与pass一起以绿色显示。值旁边的png图像否则$current\\u标记的值应以红色和fail显示。值旁边的png图像我还需要帮助在$current\\