Skip to main content

影响 wordpress 速度的因素

外链引用

插件影响

服务器数据库瓶颈

优化方向

动静状态分离

主要是使用 cdn ,如七牛

服务器优化

mysql 设置 mysql query cache

query_cache_type = 1  
query_cache_limit = 1M
query_cache_size = 16M

检查 mysql 是否正常运行

SHOW STATUS LIKE 'Qcache%';  

结果

Qcache_free_blocks    718  
Qcache_free_memory 13004008
Qcache_hits 780759
Qcache_inserts 56292
Qcache_lowmem_prunes 0
Qcache_not_cached 3711
Qcache_queries_in_cache 1715
Qcache_total_blocks 4344

4G 内存机 mysql 配置推荐

[mysqld]
bulk_insert_buffer_size = 8M
connect_timeout=10
interactive_timeout=50
join_buffer=1M
key_buffer=250M
max_allowed_packet=16M
max_connect_errors=10
max_connections=100
max_heap_table_size = 32M
myisam_sort_buffer_size=96M
query_cache_limit = 4M
query_cache_size = 250M
query_cache_type = 1
query_prealloc_size = 65K
query_alloc_block_size = 128K
read_buffer_size=1M
read_rnd_buffer_size=768K
record_buffer=1M
safe-show-database
skip-innodb
skip-locking
skip-networking
sort_buffer=1M
table_cache=4096
thread_cache_size=1024
thread_concurrency=8
tmp_table_size = 32M
wait_timeout=500
# for slow queries, comment when not used
#log-slow-queries=/var/log/mysql-slow.log
#long_query_time=1
#log-queries-not-using-indexes
[mysqld_safe]
nice = -5
open_files_limit = 8192
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer = 64M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M

超级实用的 mysqlrepot 工具是 MySQL 调试的利器。Mysql tuner 是快速修复数据库的最佳选择。MySQL Tuning primer 与 MySQL Activity Report 也是值得一试的好工具。 Maatkit 则是有效管理 MySQL 的必备神器。

MySQL 慢查询日志是获取有问题的查询信息的有利工具,激活该日志你需要编辑 my.cof 文件:

log-slow-queries=/var/log/mysql-slow.log  
long_query_time=1
log-queries-not-using-indexes

php 配置

php 开启 opcache,编译后的 php 代码缓存到共享内存。

安装 memcached 和 php memcached 扩展

WordPress 缓存

另外我们 WordPress 程序经过优化之后,每个页面的查询一般在2条左右,所以整个网站效率很高,首页甚至做到 0SQL ,页面生成只需要 0.0013 秒。

缓存插件,3 选一就可以,

  • WP Super Cache
  • W3 Total Cache
  • WP-Rocket > 推荐

wordpress 程序优化

WordPress 主题和插件尽量使用模板函数,因为 WordPress 模板函数如果可能都已经做好了 WordPress Object Cache。

比如 get_the_terms 和 wp_get_object_terms 这两个函数,功能基本一样,但是 get_the_terms 直接从对象缓存中取数据,无查询,而 wp_get_object_terms 每次都从数据库中取数据。

WordPress 插件和主题如果一定要直接查询数据库,请做好 ObjectCache,将查询的结果使用w p_cache_set 存到 ObjectCache 中,下次直接使用 wp_cache_get 获取。 注:本条可以理解为是一个专业级的技术探讨了,当然也请一定要记住养成使用插件和主题的好习惯哦!懂技术的应该可以理解,小白可以忽略直接给明月点赞回评支持了!谢谢您的阅读支持!