搭建 WordPress 网站会占用大量的内存,还需要一些好些的服务器配置之外,我们如果想更好的给用户有更好的访问体验,对网站优化也是必不可少的。

很多时候用 WordPress 越久,数据越多,你就会发现网站越来越慢,怎样才能优化好呢,今天给大家分享的是由 MySQL 查询导致的 CPU 超负荷的解决方法。

一般在配置服务器的时候 WordPress 都会使用 MySQL 用来存储网站数据,而本站也同样使用 MySQL 数据库。

在安装好 MySQL 后,一般默认的配置参数并不能更好的带来网站访客对数据库访问的需求。

由于 WordPress 本身开发的原因,不能直接生成静态的 HTML,所以我们一般都是伪静态的页面,这个时候对数据库的访问就会增加。
所以做好数据库的优化对于网站的访问速度来说是很有必要的。

Mysql 开启慢查询方法一
1、在 my.ini 的 [mysqld] 添加如下语句:

log-slow-queries = E:webmysqllogmysqlslowquery.log
long_query_time = 2

2、修改 My.ini,将 tmp_table_size 的值赋值到 200M
3、修改 My.ini,将 key_buffer_size 的值赋值到 128M
4、修改 My.ini,将 query_cache_size 的值赋值到 32M
5、重启 Mysql

Mysql 开启慢查询方法二
修改 Mysql 文件夹下面的 my.ini 文件再重启服务,发现排除故障时还是查看一些案例解决的最有参考价值,以下都是修改 my.ini,如果你的 my.ini 中查询没有的话可以直接添加进去。

#取消文件系统的外部锁
skip-locking

#不进行域名反解析,注意由此带来的权限/授权问题
skip-name-resolve

#索引缓存,根据内存大小而定,如果是独立的db服务器,可以设置高达80%的内存总量
key_buffer = 512M

#连接排队列表总数
back_log = 200
max_allowed_packet = 2M

#打开表缓存总数,可以避免频繁的打开数据表产生的开销
table_cache = 512

#每个线程排序所需的缓冲
sort_buffer_size = 4M

#每个线程读取索引所需的缓冲
read_buffer_size = 4M

#MyISAM表发生变化时重新排序所需的缓冲
myisam_sort_buffer_size = 64M

#缓存可重用的线程数
thread_cache = 128

#查询结果缓存
query_cache_size = 128M

#设置超时时间,能避免长连接
set-variable = wait_timeout=60

大多数使用 WordPress 搭建的网站,其后台都是 MySQL 数据库,提升动态网站速度,减少数据库查询次数是几大重点之一,做好数据库优化对于提升网站速度是非常有必要的。当然文章中仅仅提到的只是一种,你也可以通过开启 GZIP 压缩网页、使用 CDN 节点加速、使用 memcache 内存级缓存提升响应处理速度等等。