大家有没有发现当使用WordPress这款程序文章多了后会越来越卡,如果不进行优化直接没法用。今天分享下WP之数据库SQL优化方法。
WordPress在查询post列表时,默认会同时把文章数量也查询出来,使用这种方式的有:get_posts 、query_posts和WP_Query。get_posts在4.6.1 已经不用SQL_CALC_FOUND_ROWS,但是query_posts和WP_Query还是会用,所以还须优化。
具体语句如下:
代码语言:javascript复制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, 20
SELECT FOUND_ROWS()
在网站数据量小的时候,不会引起什么问题,但是当post数量到10w 的时候,这个就是一条必现的慢查询。
首页、分类、标签、搜索页面,只要用到这几个函数,就都会使用SQL_CALC_FOUND_ROWS这个方式。
解决方案:
根据实际情况选择性优化,最终的效果都是一样的。