关注分享主机优惠活动
国内外VPS云服务器

WordPress清理数据库中的冗余数据以加快网站速度(WordPress访问速度优化)

WordPress文章评论和许多其他数据都存储在数据库中。每当你在WordPress编辑文章时,都会产生文章修改版本信息文章草稿自动保存、更主题等无用数据删除插件还会将数据留在数据库中,卸载无法清理。会在WordPress数据库增加很多冗余数据信息,占用大量数据库缓存。但是WordPress网站使用时间越长,网站数据库中积累冗余数据信息越多,数据查询越慢。导致WordPress有大量无用垃圾数据,使得数据库负担沉重,数据库运行越来越慢,还会造成网站访问速度慢,网页打开速度慢,用户良好体验流失。因此,需要定期清理和优化WordPress数据库中的冗余数据,以保证WordPress数据库运行的效率和网站的访问速度

WordPress数据库显示wp_commentmeta用于保存评论的元信息评论放入回收站时会将数据放入此,Akismet垃圾评论识别插件也会生成数据放入此。这张桌子是很重要。保存评论信息wp_comments保存用户输入WordPress的链接wp_links(通过链接管理器)保存Wordpress相关的设置和参数的wp_options表,里面包含了很多重要的信息(主题插件各种参数和设置)保存文章元信息的wp_postmeta表保存你所有文章相关的信息的wp_posts表。一般存储数据最多的是:wp_terms文章以及文章的链接分类标签分类。wp_term_relationships日志可以在该表中找到,并与wp_term中的类别和标签起存储在该表中。相关的类别链接也存储在这个表wp_term_taxonomy中。此表描述了wp_terms表中条目的类别(类别、链接和标签)。wp_usermeta是个用来存储用户元信息的表,head的丰富的元素信息都会记录在这个表中。提示:清理优化前请备份数据库,防止因失误造成意外情况!只有做好备份,才能有备无患。PS:主要涉及的几个表:wp_options、wp_posts、wp_postmeta、wp_commentmeta

定期清理wp_options数据表wp_options这个数据表wordpress设置的全局数据。主要存储的数据对应的是WordPress后台的设置(比如博客名,博客地址,基本设置等。).通常在WordPress控制面板中进行设置——设置将相应地存储在这里。wp_options表中的垃圾残留记录会随着时间的推移逐渐积累,直到变得臃肿,导致你的数据库执行效率低下,拖慢你整个主机的运行。

wp_options表数据膨胀的主要原因有:(1)经常安装、停用或更换插件,或者使用不同的主题,在使用插件和主题的过程中会在数据库的wp_options表中添加大量的数据,包括一些冗余的垃圾数据(插件和主题删除没有清理干净,造成残留的无用数据)。

(2) -RSS缓存,数据的大用户,进行后台数据调用实际放入数据库。在wp_options表中发现大量option_name中带有“_transient”的数据,这是WordPress程序中引入RSSFeed产生的缓存。在WordPress的正常使用过程中,这些数据会不断产生,久而久之,会非常庞大。

如何清理wp_options表(1)禁用RSS缓存:打开目录wp-config.php配置文件中的设置添加以下代码

//不要调用RSS缓存。0不缓存喜鹊RSS(如果成1会缓存)define(& # 8216;喜鹊_ CACHE _ ON & # 8217, ‘0’);(2)手动清理:进入phpmyadmin或mysql命令行模式,选择相应的数据库,执行以下mysql语句:

可以删除wp_options表中的内容,尤其是从_transient和_site始的内容。这些都是控制板的订阅缓存(台首页显示订阅缓存实际上保存在wp_options表中,这个表的数量和体积都很大)。

—Wordpress数据库手动清除从WP _ options中删除的瞬态(执行以下两个SQL语句之一)其中option _ name like(& # 8216;% \ _ transient \ _ % & # 8217);从wp_options中删除WHERE option _ name REGEXP & # 8216_ transient _ & # 8217;PS:可以使用插件clean选项清理wp_options表中的垃圾数据。

清理wp_posts表(包括删除自动草稿的修订版本和文章数据)。wordpress中的文章很多:wp_posts表包括文章类型:文章、修订版、页面、文章附件、菜单;这些文章中的每一篇都会有很多状态:继承、发布、私有、草稿、自动草稿、回收站。

wp_posts post_type的重要字段含义:post是文章,revision是修订版,page是页面,attachment是文章的附件信息,nav_menu_item是菜单。这里我们需要的是文章、页面和菜单。其他的都可以删除。

Post_status: inherit是文章继承的附件和附带信息,publish发布,private是私有,draft是草稿,auto-draft是自动草稿,trash在回收站。这里我们需要的是publish的状态(已发布的文章、页面和菜单),其他的都可以删除。

PS:当然你可以根据自己的需要选择wp_posts表中哪些造成数据冗余的删除。(1)博主写文章时,系统会保存很多中间状态(如修改版本、自动保存等。),而且文章发表很多中间状态都没有删除。

(2)当你点击“写文章”或“新建页面”时,每点击一次就会生成一条“自动草稿”的冗余数据。

WordPress清理数据库中的冗余数据以加快网站速度(WordPress访问速度优化)-主机频道删除wordpress文章修改版本和自动草稿留下的数据。当我们使用WordPress撰写或修改文章时,WordPress会自动保存并生成修改版本。如果一篇文章修改了好几次,你会发现WordPress已经不自觉地为我们保存了& # 8230;…

阅读全文解决方案清理wp_posts表,进入phpmyadmin或mysql命令行模式,选择对应的数据库,执行以下mysql语句:

—删除所有未发布状态的帖子信息(仅保留已发布状态的文章、菜单和页面)从WP _ posts where not(post _ status = & # 8216;发布& # 8217;并在(& # 8216;邮政& # 8217;,‘导航菜单项目& # 8217;,‘第&#8217页;));—删除文章的所有修改版本和对应的关联数据,从WP _ postsaleft中删除a、b、c join WP _ term _ relationships b on(a . id = b . object _ id)left join WP _ postmeta c on(a . id = c . post _ id)其中a.post _ type = & # 8216修订& # 8217;;—删除自动保存的草稿和修改过的文章从WP _ posts中删除where(post _ status = & # 8216;auto -draft & # 8217;或者post _ status = & # 8216继承& # 8217;)和post _ type = & # 8216邮政& # 8217;;清理wp_postmeta表wp_postmeta表用于存储文章的元信息,大多由系统或插件自动生成。当然,主题中使用了自定义字段,所以数据也存储在这个表中。

wp_postmeta表中数据冗余的原因:(1)文章被删除后,其在wp_postmeta中的数据也要被删除。在大多数情况下,系统会自动删除它。但由于文章是人为删除的,系统不会删除wp_postmeta表中的数据,造成冗余。

(2)很多主题和插件没有及时清理。

清理wp_postmeta表的解决方案:执行以下MySQL指令清理无用数据

–规则删除(删除文章中不存在的文章的元信息)从WP _ postmeta中删除其中post _ id不在(从WP _ posts中选择post _ id);—安全(删除_edit_lock和_edit_last条目是安全的)从WP _ postmeta中删除其中meta _ key = & # 8216_ edit _ lock & # 8217;从wp_postmeta中删除,其中meta _ key = & # 8216_ edit _ last & # 8217;—风险删除(除了这两个子句之外,其他一些语句由于一些风险而被执行:酌情考虑)从WP _ postmeta中删除其中meta _ key = & # 8216_ wp _ old _ slug & # 8217;从wp_postmeta中删除,其中meta _ key = & # 8216_ revision -控制& # 8217;;从wp_postmeta中删除,其中meta _ value = & # 8216{ {未知} } & # 8217;;–特殊插件删除(postnav插件会记录每篇文章的访问量,不需要可以删除)从WP _ PostMeta中删除其中Meta _ key = & # 8216观点& # 8217;;—删除孤立的文章元信息(删除文章的记录时,还有日志扩展表postmeta的数据,要手动清理)。从WP _ Postmeta中删除PM PM PM Left Join WP.id = PM . post _ id上的WP _ PostsWP其中WP . id为null & # 8212删除了元键和值记录,只从WP _ postmeta中最新删除其中meta _ id in(select * From(select meta _ id From WP _ postmeta pm where meta _ id not in(select max(meta _ id))From WP _ postmeta PM2其中PM2.post _ id = pm.post _ id和PM2.meta _ key = pm.meta _ key)) asg1)在WordPress后台上传图片或附件后,WP _ postmeta _ file和_wp_attachment_metadata会生成两个项目如果使用FTP工具上传文件,表格中不会有这些信息。

—从WP _ postmeta中删除的特殊操作,其中meta _ key = & # 8216_ wp _ attached _ file & # 8217;从wp_postmeta中删除,其中meta _ key = & # 8216_ wp _附件_元数据& # 8217;;以下可以考虑清楚,也可以不考虑。其实很多人可能没有这个项目,因为大部分都是插件生成的。

—从WP _ postmeta中删除可选项目,其中meta _ key = & # 8216_ wp _ old _ slug & # 8217;从wp_postmeta中删除,其中meta _ key = & # 8216jd _ tweet _ this & # 8217;从wp_postmeta中删除,其中meta _ key = & # 8216wp _ jd _ clig & # 8217;从wp_postmeta中删除,其中meta _ key = & # 8216wp _ jd _ target & # 8217;从wp_postmeta中删除,其中meta _ key = & # 8216nofollow4post & # 8217;从wp_postmeta中删除,其中meta _ key = & # 8216ratings _ score & # 8217;从wp_postmeta中删除,其中meta _ key = & # 8216收视率_用户& # 8217;;从wp_postmeta中删除,其中meta _ key = & # 8216ratings _ average & # 8217;从wp_postmeta中删除,其中meta _ key = & # 8216WP _ noextrenallinks _ mask _ links & # 8217;;从wp_postmeta中删除,其中meta _ key = & # 8216_ wp _ page _ template & # 8217;从wp_postmeta中删除,其中meta _ key = & # 8216_ sexy bookmarks _ perma hash & # 8217;;从wp_postmeta中删除,其中meta _ key = & # 8216_ sexybookmarks _ shortUrl & # 8217;执行上述语句后,可以删除95%以上的数据,这被认为是极限优化。最后,考虑到这个数据表不是很重要,有洁癖的人可以尝试清理一下这个表。当然,测试清算表会使一些原始数据丢失。

—Cleanliness删除TRUNCATE TABLE wp _ postmeta清理wp_commentmeta表wp_commentmeta表是wp官方推荐的Akismet反垃圾防护插件保存的垃圾信息记录(记录了管理员用户对垃圾评论的处理结果以及插件自动判断某条评论是否为垃圾评论的相关记录)。如果这个表长期不清理,你会发现wp_commentmeta数据表会越来越大,甚至比我们的文章数据库还要大。而且垃圾评论很少,建议不要用Akismet之类的插件,或者我们用了这个插件之后要定期清理数据(直接清理删除wp_commentmeta数据表的内容就可以了,不要删除这个字段。)。

wp_commentmeta表中数据冗余的原因有:(1)一条评论被删除后,其在wp_commentmeta表中的数据也要被删除。在大多数情况下,系统会自动删除文章。但由于文章是人为删除的,系统不会删除wp_commentmeta表中的数据,造成冗余。

(2)很多主题和插件没有及时清理。

解决wp_commentmeta表的清理问题,进入phpmyadmin或mysql命令行模式,选择相应的数据库,执行下面的mysql语句:

–删除隔离的评论元信息(评论删除后留在wp_commentmeta表中的信息)从WP _ commentmeta中删除comment _ id不在的地方(从WP _ comments中选择comment _ id);从wp_commentmeta中删除,其中meta _ key REGEXP & # 8216akismet & # 8217;—删除评论删除的时间,用处不大。从WP _ comment meta中删除,其中meta _ key like & # 8216% trash % & # 8217;—直接删除wp_commentmeta数据表的所有内容影响不大,不会有重要数据涉及其中:TRUNCATE TABLE wp _ commentmeta清理其他数据表& # 8212;删除所有垃圾邮件(包括待定,垃圾邮件评论,回收站评论)从WP _ comments中删除,其中comment _ approved!= ‘1’;—删除待定评论从WP _ comments中删除,其中comment _ approved = & # 82160’;—删除垃圾评论从WP _ comments中删除,其中comment _ approved = & # 8216垃圾邮件& # 8217;;—删除回收站评论从WP _ comments中删除,其中comment _ approved = & # 8216垃圾& # 8217;;–从wp_term_relationships中删除隔离的关系信息(文章和评论删除后WP _ term _ relationships表中剩余的信息),其中term _ taxonomy _ id = 1,object _ id不在(从WP _ posts中选择id);—删除的标签(有些文章删除了,但是标签还在,WordPress不会自动删除)从wp_terms中删除a,b,c作为aLEFT加入wp_term_taxonomy作为c ON a.term_id = c.term_idLEFT加入wp_term_relationships作为b ON b . term _ taxonomy _ id = c . term _ taxonomy _ id where(c . taxonomy = & # 8216;post _ tag & # 8217和c . count = 0);数据库表优化原理:数据库优化不涉及删除数据,而是调整数据库表的状态。当使用phpmyadmin时,您可能会在数据库表后看到xxMB字样,它指的是已经分配给当前表的未使用的空间。这种冗余没有坏处。它不会占用你的空间。当表中的一些记录被删除时,这些记录仍保留在链表中,当插入新数据时,这些旧记录的位置将被再次使用。所以删除记录会留下一些间闲置,造成你所说的“冗余”。

优化:只需手动优化或修复phpmyadmin中的表,选择数据库并执行以下SQL语句:

优化表wp _ commentmeta优化表wp _ comments优化表wp _ links优化表wp _ options优化表wp _ postmeta优化表wp _ posts优化表wp _ terms优化表wp _ term _ relationships优化表wp _ term _ taxonomy优化表wp _ usermeta优化表wp _ usersPs: wp _是默认前缀。如果定制已经更改,请根据实际情况进行修改。

将上述数据库的执行语句汇总成php文件,一键优化清理WordPress数据库,将上述所有数据库清理语句汇总成一个PHP文件(SEOClear.php)。打开PHP文件后,可以直接对数据进行优化和清理,并确保安全。粘贴以下代码来执行PHP文件:

& lt?Php//wordpress数据库优化清理脚本$ hostname _ blog = & # 8220本地主机& # 8220;;//设置数据库主机,同WP-config . PHP $ database _ blog = & # 8220;wordpress & # 8221;//设置数据库名称,同WP-config . PHP $ username _ blog = & # 8220;root & # 8220;//设置数据库用户名,同wp-config . PHP $ password _ blog = & # 8220;”;//设置数据库密码,同WP-config . PHP $ blog = MySQL _ p connect($ hostname _ blog,$ username _ blog,$ password _ blog)或trigger _ error (mysql _ error()、e _ user _ error);mysql_select_db($database_blog,$ blog);MySQL _ query(& # 8216;从wp_posts中删除a、b、c a左连接WP _ term _ relationships b ON(a . ID = b . object _ ID)左连接wp_postmeta c ON (a.ID = c.post_id)其中a.post _ type = & # 8220修订& # 8221;‘);MySQL _ query(& # 8216;从wp_posts中删除没有的地方(post _ status = & # 8220发布& # 8221;并在(& # 8220;邮政& # 8221;,”导航菜单项目& # 8221;,”第& # 8221;)’);MySQL _ query(& # 8216;从wp_postmeta中删除,其中meta _ key = & # 8220_ edit _ lock & # 8221‘);MySQL _ query(& # 8216;从wp_postmeta中删除,其中meta _ key = & # 8220_ edit _ last & # 8221‘);MySQL _ query(& # 8216;从wp_commentmeta中删除,其中meta _ key LIKE & # 8220% trash % & # 8221‘);MySQL _ query(& # 8216;从wp_comments中删除,其中comment_approved!= “1”‘);MySQL _ query(& # 8216;从wp_postmeta pm删除pm左加入wp _ posts wp上wp。ID = pm.post_id其中wp。ID为& # 8217;);MySQL _ query(& # 8216;从wp _ comments元数据中删除,其中comment_id不在(从wp_comments中选择comment _ id)& # 8217;);MySQL _ query(& # 8216;从wp_term_relationships中删除,其中term_taxonomy_id=1且object_id不在(从wp_posts中选择id)& # 8217;);MySQL _ query(& # 8216;从wp_options中删除WHERE option _ name REGEXP & # 8220_ transient _ & # 8221‘);MySQL _ query(& # 8216;从wp_postmeta中删除,其中meta _ key = ' _ WP _ attached _ file ' & # 8217;);MySQL _ query(& # 8216;从wp_postmeta中删除,其中meta _ key = ' _ WP _ attachment _ metadata ' & # 8217;);MySQL _ query(& # 8220;从wp_posts中删除where(post _ status = & # 8217;auto -draft & # 8217;或者post _ status = & # 8217继承& # 8217;)和post _ type = & # 8217邮政' & # 8221;);$ table list = MySQL _ query(& # 8220;显示表格& # 8221;);while($ check list = MySQL _ fetch _ array($ table list)){ $ optimization = MySQL _ query(& # 8220;优化表格`$check list[0]` & # 8221;);} echo & # 8216完成& # 8217;;//ps记得修改数据库前缀~//使用时,将脚本上传到网站任意目录,通过浏览器访问,一键清理wordprsss数据库。?& gt执行后,WordPress生成的冗余文件会被批量删除,相应的数据库信息会被修改并上传到网站,然后就可以使用浏览器直接访问脚本文件(SEOClear.php),对数据库进行优化和清理。但由于一次执行多个sql查询,脚本访问的响应速度可能会比较长,优化成功后会显示Done。

屏蔽垃圾评论,提交给数据库,这样数据库就差不多优化了。将下面的代码添加到当前WordPress主题的functions.php文件中

//禁止垃圾评论提交到数据库函数WP _ fuck spam($ comment){ if(is _ user _ logged _ in()){ return $ comment;}//登录用户无压力& # 8230;if(WP _黑名单_检查($ comment[& # 8216;评论_作者& # 8217;],$ comment[& # 8216;评论_作者_邮箱& # 8216;],$ comment[& # 8216;comment _ author _ url & # 8216],$ comment[& # 8216;comment _ content & # 8217],$ comment[& # 8216;comment _ author _ IP & # 8216],$ comment[& # 8216;comment _ agent & # 8217])){ header(& # 8220;content -类型:text/html;charset = ut F-8 & # 8220;);WP _ die(& # 8216;您的评论包含辱骂,过度或非法的言论,或您的IP已被列入黑名单。如有任何问题,请联系管理员!返回文章页面& # 8216;);} else { return $ comment} } add _ filter(& # 8216;预处理_评论& # 8217;, ‘wp _ fuckspam & # 8217);

未经允许不得转载:主机频道 » WordPress清理数据库中的冗余数据以加快网站速度(WordPress访问速度优化)

相关推荐

评论 抢沙发

评论前必须登录!