WordPress十万篇文章数据库优化指南
本文有643个文字,大小约为3KB,预计阅读时间2分钟
原文(wen)标题:WordPress十万篇文(wen)章数据库优化指(zhi)南
WordPress网站访问慢(man),一般是数据(ju)库查询语句执行慢(man)导致的。
例如(ru):查询(xun)语句如(ru)下
SELECT wp_posts.IDFROM wp_postsWHERE 1=1AND wp_posts.post_type = 'post'AND ((wp_posts.post_status = 'publish'))ORDER BY wp_posts.post_date DESCLIMIT 0, 5
/* 受影响记录行数: 0 已找到记录行: 5 警告: 0 持续时间 1 查询: 15.016 秒. */
上(shang)面一条(tiao)语句(ju)执行要15秒,这未免(mian)太慢了。
通过改(gai)WordPress代码(ma)中的查询语句(ju),肯(ken)定可(ke)以解(jie)决这些(xie)问题,但问题是,如果(guo)要改(gai)sql语句(ju),势(shi)必要改(gai)很多代码(ma),这个(ge)方法我不推荐。
有的人(ren)可(ke)能说加索(suo)引(yin),但加上索(suo)引(yin)后,发现执行还是(shi)很慢。原因是(shi),有的查(cha)询(xun)语句未必会用到索(suo)引(yin),所以,这(zhei)个方法我也不(bu)推荐。
其实WordPress慢(man)的原因(yin),很大一部分跟wp_posts表(biao)(biao)查询有(you)关,仔(zi)细观察(cha)这个(ge)表(biao)(biao),你会(hui)(hui)发现这个(ge)表(biao)(biao)引(yin)擎(qing)是(shi)InnoDB,MySQL有(you)个(ge)非常(chang)适(shi)合查询的表(biao)(biao)引(yin)擎(qing)是(shi)MyISAM,如(ru)果把(ba)这个(ge)表(biao)(biao)引(yin)擎(qing)改(gai)为MyISAM是(shi)否会(hui)(hui)更(geng)快了?
改变表引擎:
ALTER TABLE `wp_posts`
COLLATE='utf8mb4_unicode_520_ci',
ENGINE=MyISAM,
CONVERT TO CHARSET utf8mb4 COLLATE 'utf8mb4_unicode_520_ci';
改完后,再次执行(xing)查(cha)询语句
/* 受影响记录行数: 0 已找到记录行: 5 警告: 0 持续时间 1 查询: 0.750 秒. */
速度提升了,由15.016秒(miao)变(bian)为了0.750秒(miao),这(zhei)速度已(yi)经很快了。
为(wei)了(le)测(ce)试(shi),那我就(jiu)将(jiang)整(zheng)个数据库中的(de)所有表引擎(qing)都改为(wei)MyISAM试(shi)试(shi)。
改完之后(hou),WordPress后(hou)台(tai)文章列表页面(mian)基本上可以4秒左(zuo)右(you)打开(kai)。
后台标签页面由于排序(xu)(xu)导(dao)致页面加载慢,可以通过(guo)代(dai)码(ma)修改排序(xu)(xu)规则。
SELECT t.term_idFROM wp_terms AS tINNER JOIN wp_term_taxonomy AS ttON t.term_id = tt.term_idWHERE tt.taxonomy IN ('post_tag')ORDER BY t.name ASCLIMIT 20
/* 受影响记录行数: 0 已找到记录行: 20 警告: 0 持续时间 1 查询: 18.485 秒. */
这个(ge)只能改查询语句了。
add_filter('get_terms_args',function ($args, $taxonomies ){
$args['orderby'] = 'term_id';
return $args;},10,2);
强制将排序改为按照term_id排序,现在,查(cha)询肯定很(hen)快。
上面那条语句放弃优化,2秒可以接(jie)受。
基本上网站后台页面(mian)没有之前(qian)那(nei)么卡了,至于前(qian)台页面(mian)的(de)(de)优化(hua),需要根据主题代码(ma)来优化(hua),这边(bian)推荐安装缓存加速类的(de)(de)插件解决(jue)前(qian)台访问(wen)慢(man)的(de)(de)问(wen)题。
上面的调(diao)整,请在专业的技(ji)术人员下(xia)操作(zuo)。如果您有类似优化需求,可以联系我(wo)们(men)处(chu)理,联系方式://wap666.cn/
本(ben)文来源://wap666.cn/tutorials/246.html
版(ban)权声明:本文为向前网络工(gong)作室,未(wei)经(jing)站(zhan)长允许不得转载。