优化WordPress SQL,减少空间并提升速度

使用了一段时间的wordpress之后,是否无意中发现wordpress的数据库越来越大了,日志的更新版本也多了,spam1000多条了,这个时候,你就需要优化一下你的数据库了。

1.优化数据表

当然是进入phpmyadmin里面,选择所有数据表,然后点击优化了。也可以使用下面的sql语句来操作。

OPTIMIZE TABLE wp_posts;

2.删除日志修订

DELETE a,b,c FROM wp_posts a  LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision'

3.去掉修订和自动保存功能

3.6版本的之前可以在主题的function.php里面加以下代码

//////// 移除自动保存和修订版本
remove_action('pre_post_update', 'wp_save_post_revision' );
add_action( 'wp_print_scripts', 'disable_autosave' );
function disable_autosave() {
	wp_deregister_script('autosave');
}

3.6以后的

在 wp-config.php 里面 define 的方法还是 OK 的:

define('AUTOSAVE_INTERVAL', 36000000 ); //设置自动保存间隔,单位是秒,默认60
define('WP_POST_REVISIONS', false ); //禁用文章修订功能

注:题目标题“禁用”加了引号是因为“禁用自动保存”是通过把自动保存间隔时间设成一个超长时间来实现的,所以……你懂的,来源

4.删除所有垃圾评论

不用到后台一条一条删除,只需下面一条 MySQL 即可:

DELETE FROM wp_comments WHERE comment_approved != '1';

5. 删除没有的标签

不再使用的标签,WordPress 是不会自动删除的,需要人工清理下:

DELETE a,b,c
FROM
	wp_terms AS a
	LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id
	LEFT JOIN wp_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id
WHERE (
	c.taxonomy = 'post_tag' AND
	c.count = 0
	);

6. 删除没用的 postmeta 记录

可能日志的记录已经删除了,但是日志扩展表 postmeta 里面的数据还没有删除,也人工清理下吧:

DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL

声明: 未经本站许可,谢绝转载!

0 个主题帖 其中:热心观众:0 个, 管理员:0 个

抱歉,评论被关闭