首页 > wordpress相关 > WordPress优化之清理数据库
2012
12-08

WordPress优化之清理数据库

 

本文的方法,主要是用于清理已删除插件的残留键值,还有一些_transient开头的键值,清理前一定要先备份。这些键值都是保存到wp-options表中,下面的方法我也试过了,没有问题,博客竟然提速了零点几秒,很不错。

一、用记事本新建文件,保存为qingli.php,加入下面代码:

<;?php

$  hostname_blog = &quot;localhost&quot;;//设定数据库地址地址,一般为localhost
$  database_blog = &quot;test&quot;;//设定数据库名
$  username_blog = &quot;test&quot;;//设定数据库用户名
$  password_blog = &quot;test&quot;;//设定数据库密码
$  blog = mysql_pconnect($  hostname_blog, $  username_blog, $  password_blog) or trigger_error(mysql_error(),E_USER_ERROR);

//---------------------清除垃圾信息-------------------------

//清空Rss feed垃圾信息
mysql_query('DELETE FROM wp_options WHERE option_name REGEXP &quot;_transient_&quot;');

//---------------------重新排列序号-------------------------

$  no = 1;

function change_id($  id)
{
global $  no;

$  sql = 'update wp_options set option_id = ' . $  no . ' where option_id = ' . $  id;
mysql_query($  sql);

$  no = $  no + 1;
}

mysql_select_db($  database_blog, $  blog);
$  query_optionRecord = &quot;SELECT option_id FROM wp_options ORDER BY option_id ASC&quot;;
$  all_optionRecord = mysql_query($  query_optionRecord);
$  row_optionRecord = mysql_fetch_assoc($  all_optionRecord);

//排序
do {
change_id( $  row_optionRecord['option_id'] );
} while ($  row_optionRecord = mysql_fetch_assoc($  all_optionRecord));

//重设计数起点
mysql_query('alter table wp_options AUTO_INCREMENT = ' . $  no);

//--------------------优化wp_options表----------------------

mysql_query('OPTIMIZE TABLE wp_options');

//------------------------结束------------------------------

echo 'All Done';

?>;

二、上传到你博客的根目录,在浏览器中输入:你博客的地址/qingli.php;

三、显示成功后,进入phpmyadmin,打开wp-option表,你会发现所有的键值都按照编号顺序依次排列了;

四、最后执行以下SQL语句,表内所有的_transient_将被通通清除。

DELETE FROM wp_options WHERE option_name REGEXP &quot;_transient_&quot;

另:采用AKismet插件来过滤垃圾留言的话,数据库里面的wp-commentmeta表也异常的庞大,直接清空吧,不会对系统产生任何影响。

 

备注:转载请注明来自静湖一筑