WordPress终极优化指南–将MySQL索引添加到WordPress wp_options表
WordPress终极优化指南–将MySQL索引添加到WordPress wp_options表
随着使用时间的增长,WP数据库中的wp_options表会变得越来越臃肿。很多插件会在wp_options表生成临时数据。
表的膨胀会影响数据库的性能,然后影响到网站的速度。优化网站过程中优化wp_options表非常重要。
有很多种方法提高性能,但是比较简单的是给wp_options表添加索引。可以拥有更快的查询速度。
首先我们需要确认是否已经创建了索引,登陆phpmyadmin然后执行一个SQL命令来查询。
SHOW INDEX FROM wp_options;
如果执行后显示的是下图的结果,则是没有创建索引。
如果现实的是下图中,Column_name值为autoload 或类似的索引,则表示已经创建。
wp_options表索引添加教程(WP-CLI版本命令普通用户不必理会)
首先找出wp_options表通过比较autoload = yes行数和autoload = no行数来向表中添加索引。
autoload = yes行数查询
SELECT COUNT(CASE WHEN autoload = ‘yes’ THEN 1 END) FROM wp_options;
WP-CLI版本
wp db query “SELECT COUNT(CASE WHEN autoload = ‘yes’ THEN 1 END) FROM $(wp db prefix –allow-root)options;” –allow-root
autoload = no行数查询
SELECT COUNT(CASE WHEN autoload = ‘no’ THEN 1 END) FROM wp_options;
WP-CLI版本
wp db query “SELECT COUNT(CASE WHEN autoload = ‘no’ THEN 1 END) FROM $(wp db prefix –allow-root)options;” –allow-root
一般是autoload=no数量大于autoload=yes才会去创建索引。
通常如果60-80%的option_name键是autoload = no值,这时候就应该创建索引了。
索引创建
MySQL 语法采用这种格式 CREATE INDEX
CREATE INDEX <index-name> ON <table-name>(<column-1>, <column-2>);
wp_options输入下方命令在表上创建WordPress MySQL索引
CREATE INDEX autoloadindex ON wp_options(autoload, option_name);
创建成功后一般会返回:
MySQL 返回的查询结果为空 (即零行)。 (查询花费 0.0248 秒。)
CREATE INDEX autoloadindex ON wp_options(autoload, option_name)
创建后再使用SHOW INDEX FROM wp_options; 查询一次即可看到是否创建成功。
WP-CLI版本
wp db query “CREATE INDEX autoloadindex ON $(wp db prefix –allow-root –skip-plugins –skip-themes)options(autoload, option_name);” –allow-root
如何删除索引?
使用下方命令将从wp_options表中删除MySQL索引
DROP INDEX autoloadindex ON wp_options
WP-CLI版本
wp db query “DROP INDEX autoloadindex ON $(wp db prefix –allow-root)options” –allow-root