十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
一、数据库表清理
创新互联自2013年起,是专业互联网技术服务公司,拥有项目成都网站制作、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元穆棱做网站,已为上家服务,为穆棱各地企业和个人服务,联系电话:18982081108
1. wordpress数据库表
wp_commentmeta: 用于保存评论的元信息,在将评论放入回收站等操作时会将数据放入此表,Akismet等插件也会生成此表的数据。此表不太重要
wp_comments: 用于保存评论信息的表
wp_links: 用于保存用户输入到Wordpress中的链接(通过Link Manager)的表
wp_options: 用于保存Wordpress相关设置、参数的表,里面包括了大量的重要信息
wp_postmeta: 用于保存文章的元信息(meta)的表
wp_posts: 用于保存你所有的文章相关信息的表,非常的重要。一般它存储的数据是最多的
wp_terms: 文章和链接分类以及文章的tag分类可以在表里找到
wp_term_relationships: 日志与wp_terms中的类别与标签联合起来共同存储在wp_terms_relationships表中。类别相关链接也存储在wp_terms_relationships中
wp_term_taxonomy: 该表格对wp_terms表中的条目分类(类别、链接以及标签)进行说明
wp_usermeta : 用于保存用户元信息(meta)的表
wp_users:用于保存Wordpress使用者的相关信息的表
2. 清理涉及到的表
更换主题,删除插件会在将数据留在数据库中,在卸载后无法被清理。除此之外,在由于一些操作,会导致数据库的冗余,比如已经没有的评论,不应该在评论元数据表中有记录,由于没有外键的约束,这些记录没有被删除,会造成数据的冗余。本文的宗旨是删除掉不必要的数据库内容,提高wordpress的效率
在此,主要涉及到一下几张表:wp_options,wp_posts,wp_postmeta,wp_commentmeta
注意清理之前进行备份
3. wp_options的清理
wp_options 这个数据表是wordpress设置的全局数据,这个表会经常有数据膨胀。主要原因是:
(1)以前用过的一些插件、主题在删除之后没有进行设置的清理,造成残留数据
(2)占用数据的大户–RSS缓存,后台的数据调用竟然会放到数据库里面
处理方法:
①网上对RSS处理方法有两种一个是修改后台的文件直接不去调用,这个是我不喜欢的毕竟修改了程序,其实这个很容
易忘记WP升级是太频繁的哪次更新覆盖了新文件还是照样缓存.另外一种就是在配置文件里面填写define(‘MAGPIE_CACHE_ON’, ’0′); 这个是管用的,添加以后后台首页的调用明显变慢
②使用插件clean options
③费力但是简单的清除方法:删除wp_options表,会删除一些设置,需要重新设置wordpress,推荐新手使用
TRUNCATE TABLE wp_options;
4.wp_posts清理
wordpress的文章有好多:wp_posts表中包括
文章种类:文章、修订版本、页面、文章的附件、菜单
其中每种文章又会有很多状态:继承、发布、私有、草稿、自动草稿、回收站中
冗余原因:
(1)在博主写文章的时候,系统会保存很多的中间状态,在文章发布之后其很多的中间状态没有被删除
解决办法:
①使用插件:WP Cleaner,使用插件的好处就是有保护机制,无论怎么操作都无法影响已发布的贴子,请放心使用
②自己动手删除,数据库中的标志删除文章,注意备份
说明:wp_posts的重要字段含义:
post_type:文章类型,post表示为文章,revision表示为修订版本,page为页面,attachment是文章的附件信息,nav_menu_item是菜单。这里我们需要的是文章、页面、和菜单
post_status:文章状态,inherit是继承的附件和文章的附带信息,publish是已经发布、private是私有的,draft是草稿,auto-draft是自动草稿,trash是在回收站。这里我们需要的是publish的状态的
这里我们主要是要 已经发布的文章、页面和菜单,除此之外的都可以删除,当然可以根据自己的需求选择删除哪些
DELETE FROM wp_posts
WHERE NOT(post_status = ‘publish’ AND post_type IN(‘post’,'nav_menu_item’,’ page’));
③去除WP保存修订版本的功能
WordPress默认的功能并不都是我们想要的,比如修订版本历史对于大多数人来说是无用的鸡肋功能。所以我么需要禁止一些博客功能,来达到较为符合个
人要求的博客应用。对于高手来说,可以直接修改程序的配置文件,来禁止相关功能。对于我等程序小白来说还是利用插件是最佳的选择
推荐中文插件SuperSwitch来关闭一些我们不需要的博客功能。这个插件可以关闭自动保存和修订历史版本,还可以关闭博客程序、主题、插件的自动更新。功能非常强大,操作及其简单。用SuperSwitch禁止了保存修订版本之后,文章序号就不会断得太厉害了
5.wp_postmeta清理
wp_postmeta是文章的元信息表,其数据是系统或者插件使用
冗余原因:
(1)文章被删除之后,其在wp_postmeta中的数据理应被删除,在系统中多数情况是系统自动删除,但是由于人为删除文章,系统不知道被删除,就不会删除wp_postmeta表中的数据,造成冗余
(2)很多主题、插件没有做好及时清除的工作
解决办法:
① 手动删除
规矩删除
删除文章中不存在文章的元信息
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT post_id FROM wp_posts);
安全删除
删除_edit_lock和_edit_last条目是安全的,所以这里给出SQL语句
DELETE FROM wp_postmeta WHERE meta_key = ‘_edit_lock’;
DELETE FROM wp_postmeta WHERE meta_key = ‘_edit_last’;
风险删除
除了这两条还执行了一些其他语句由于有些风险:自己酌情考虑
DELETE FROM wp_postmeta WHERE meta_key = ‘_wp_old_slug’;
DELETE FROM wp_postmeta WHERE meta_key = ‘_revision-control’;
DELETE FROM wp_postmeta WHERE meta_value = ‘{{unknown}}’;
特殊插件删除
postnav插件会记录每个文章的访问数,如果不需要,可以删除
DELETE FROM wp_postmeta WHERE meta_key = ‘views’;
特殊操作删除
在WordPress的后台上传图片或者附件后会在wp_postmeta中生成_wp_attached_file和_wp_attachment_metadata两个项,wp_posts也会记录附件的信息。如果使用FTP工具上传文件,表中就不会有这些信息
DELETE FROM wp_postmeta WHERE meta_key = ‘_wp_attached_file’;
DELETE FROM wp_postmeta WHERE meta_key = ‘_wp_attachment_metadata’;
洁癖删除
这几条条语句执行完毕能够删除掉95%以上的数据,算的上是极限优化了,最后考虑到这个数据表并不是很重要,有洁
净癖的人可以尝试清空这个表,当然我测试清空表会让一些原本的数据丢失
TRUNCATE TABLE wp_postmeta;
6. wp_commentmeta清理
冗余原因:
(1)评论被删除之后,其在wp_commentmeta中的数据理应被删除,在系统中多数情况是系统自动删除,但是由于人为删除文章,系统不知道被删除,就不会删除wp_commentmeta表中的数据,造成冗余
(2)很多主题、插件没有做好及时清除的工作
解决办法:
一下语句去除没有用的数据,如果评论中没有此条评论,那么在wp_commentmeta也没有意义,好像wordpress在清空回收站的时候会删除wp_commentmeta相应的数据。如果不出意外,下面的操作我们应该不需要做
DELETE FROM wp_comments WHERE comment_approved = ‘trash’;
DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments);
在wp_commentmeta里面会记录评论被删除的时间,这些信息用处不是很大,当评论被从回收站删除之后,这些删除的时间意义就不是很大,就可以删除了,所以用下面的语句一样达到删除的目的
DELETE FROM wp_commentmeta WHERE meta_key LIKE ‘%trash%’;
如果直接全部删除wp_commentmeta,影响不会太大,这里面不会涉及重要的数据
TRUNCATE TABLE wp_commentmeta
7. 总结
其实大部分无用的数据均在这几张表中,清理过后应该不会又太多的冗余数据了。但这里没有针对特殊插件或主题做数据库清理,有时这些插件和主题会悄悄动了一些数据库表,这样给清理带来很大难度,需要看代码才知道哦
二、数据库表优化
原理:数据库优化不
涉及数据的删除,是将数据库的表的状态调整好。在使用phpmyadmin时候,或许您会看到数据库表后面有多余xxMB的字样,这个指的是那些已经分配
给当前表但是却没有使用的空间。这个多余是没有什么害处的,他不会占用你的空间。当删除一个表的一部分记录时,这些记录仍然保持在一个linked
list 中,当插入新数据时会再次使用这些老纪录的位置。所以删除纪录会闲置一些空间造成你说的“多余”
优化:
(1)在phpmyadmin手动 优化或者修复表即可
(2)运行SQL:
OPTIMIZE TABLE wp_commentmeta;
OPTIMIZE TABLE wp_comments;
OPTIMIZE TABLE wp_links;
OPTIMIZE TABLE wp_options;
OPTIMIZE TABLE wp_postmeta;
OPTIMIZE TABLE wp_posts;
OPTIMIZE TABLE wp_terms;
OPTIMIZE TABLE wp_term_relationships;
OPTIMIZE TABLE wp_term_taxonomy;
OPTIMIZE TABLE wp_usermeta;
OPTIMIZE TABLE wp_users;
(3)插件:Optimize DB
我是使用SQL语句进行清理与优化的,附我的优化SQL语句(我的表前缀是wp1):
DELETE FROM wp1_posts WHERE NOT(post_status = ‘publish’ AND post_type IN(‘post’,'nav_menu_item’,’ page’));
DELETE FROM wp1_postmeta WHERE meta_key in (‘_edit_lock’,
‘_edit_last’, ‘_wp_old_slug’, ‘_revision-control’, ‘{{unknown}}’,
‘_wp_attached_file’, ‘_wp_attachment_metadata’);
DELETE FROM wp1_postmeta WHERE post_id NOT IN (SELECT id FROM wp1_posts);
DELETE FROM wp1_comments WHERE comment_approved like ‘%trash%’;
DELETE FROM wp1_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp1_comments);
OPTIMIZE TABLE wp1_commentmeta;
OPTIMIZE TABLE wp1_comments;
OPTIMIZE TABLE wp1_links;
OPTIMIZE TABLE wp1_options;
OPTIMIZE TABLE wp1_postmeta;
OPTIMIZE TABLE wp1_posts;
OPTIMIZE TABLE wp1_terms;
OPTIMIZE TABLE wp1_term_relationships;
OPTIMIZE TABLE wp1_term_taxonomy;
OPTIMIZE TABLE wp1_usermeta;
OPTIMIZE TABLE wp1_users;
有时候在登录Wordpress时报错:随机数校验失败,或者认证失败等等。其实,这是WordPress的随机数和缓存导致的问题。其实就是其中一个人把登录页面缓存了,而缓存时间已经超过12个小时。Wordpress默认随机数nonce时间在12-24小时之内就会失效。只能清空缓存才能再次正常登陆。接下来搬主题就分享一下加大WordPress的随机数nonce过期时间解决缓存过期错误问题。
针对上面的问题,要么清空登录页面的缓存,要么把WordPress随机数nonce有效时间改成48小时,网页缓存(WP Super Cache等缓存插件)时间改成24小时。
实际上,WP会为那些涉及安全问题的地方,比如ajax加载之类,会提供一个随机数,每个用户不同。而这个随机数有个有效期,默认为24小时。事实上,按照WP官方描述,这个时间上是12-24小时之间,随机失效。所以,当使用各类WordPress缓存插件缓存页面超过12小时,这个随机数就有可能失效,直接导致认证失败,登陆失败等问题。
如何快速删除 WordPress外贸网站后台的垃圾评论?使用WordPress搭建外贸网站的朋友们一定遇到过当打开网站后台时出现大量垃圾评论的情况。一般只有几个垃圾评论的话,直接选中,然后删除就可以,但由于一些原因,你突然发现网站的后台积压着大量待处理的垃圾评论,上百甚至上千条,这就变得非常棘手了,叫人一个头两个大。
可能导致 WordPress网站 产生大量垃圾评论的几种情况:
Akismet反垃圾评论的插件被你的网站禁用,所以后台会产生大量待审核的垃圾评论
一段时间没有登录网站后台,发现网站多了数百上千条不相关的评论
网站文章内容带来的很多不痛不痒的灌水评论
之前的文章没有关闭评论遗留下来的大量垃圾评论
这种情况有什么好的解决方法呢?
首先,我们建议你在WordPress后台开启评论审核功能。这意味着所有用户留在网站上的所有评论需要经过管理员的审核批准才可以发布到前台,防止网站前台出现大量垃圾评论而影响到你的Wordpress外贸网站的信誉。其次是启用Akismet,来更有效率的屏蔽垃圾评论。
单个去审核每个评论需要花费大量的时间,如果你确定待审评论都是垃圾评论,则可以全部删除。
如果你只有几十条上百条待审的垃圾评论,可以选择手动删除。
登录WordPress网站后台,进入管理区域中的评论页面,点击待审标签即可查看垃圾评论列表。默认情况下,此列表只显示20条待审的评论。更改此设置需点击页面右上角的“Screen Options“标签。
然后在Number of items per page中输入100,点击应用。现在每页显示的评论数量已更改为100条,单击“作者”前面的全选列表,即可选中当前页面中的100条评论,然后单击“批量操作”,在下拉菜单中选择“移动到回收站”,接着单击“应用”按钮,就可以将所有选中的垃圾评论移到回收站。
WordPress系统在完成你的指令,将评论移动到垃圾箱之后,将自动刷新页面,并且显示接下来的100条评论,重复此过程即可将其全部移动到垃圾箱。所有在垃圾箱里面的评论会保留30天,30天之后将被自动永久删除。
如果你想立即将其永久删除,可以单击“清空回收站”按钮。
删除之后,将看到一条确认已删除的提示消息。
注意:每页的评论显示数量最多可设置为999条,但如果设置数量过大会增加我们网站服务器的负担,降低网站的运行速度。而且当你尝试全选几百条评论移到回收站时,可能收到下图所示错误信息提示。这种情况下可以适当减少一次性删除评论的数量,多操作几次即可。
如果你有大几百上千条的待审评论需要删除,那么你也可以使用插件将其全部删除。使用插件将直接永久删除待审评论,而不是移动到垃圾箱里,所以操作之前最好先备份WordPress网站,以防内容丢失或者你改变主意。
首先,安装并激活 Delete Pending Comments 插件。激活之后,转到WordPress后台,进入评论页面,查看Delete Pending Comments部分,将看到有多少待审的评论。
注意:如果待审评论中既有垃圾评论又有需要保留的评论,请对于需要保留的评论先进行批准,然后在使用插件删除。
如果你想要删除所有的待审评论,可以复制粘贴 “I am sure I want to delete all pending comments and realize this can’t be undone”到确认删评的文本框中,然后单击“删除待审评论”。
完成之后,可以看到确认已删除所有待审评论的消息提示。
首先打开网站后台,进入评论页面,单击“Spam”标签,如图
接着,单击“Empty Spam button”清空垃圾评论,将永久删除Spam列表下的所有评论。
想了解更多Wordpress外贸建站的相关知识请查看 歪猫笔记网站