还记得之前提到的如何从维基百科中导入模板吗?如果不幸跟我一样,在导出时将“ include templates ”也勾选的话,可能已经有大量未使用的模板了,数据库逐渐膨胀,页面打开速度也逐渐下降。

一、彻底清除被删文件

玩过维基百科的人都知道,虽然你在某个页面上选择了删除,但是系统并不会将它彻底删除的,为的是哪一天你或者他人想要恢复的时候不必重新创建。

普通用户与系统管理员均无法永久删除一个 wiki 页面。尽管如此,系统管理员可对页面进行在之后可恢复的删除操作。 这是设计上经过慎重考虑之后的决定,也是 wiki 工作方式中重要的一环。 任何形式的编辑操作都可以被所有其他用户撤销,包括找回被删除的内容。 这并不会浪费多少存储空间,并且,只要页面被标记为“已删除”,它实际上就已经被删除了。
另一方面,对于具有管理员权限的用户而言,删除页面是一种很简单的操作:它可以将一个页面从 wiki 中半永久性地删除,直至另一个管理员将其反删除(恢复)——当然,这也很容易。 在典型的应用情况中,管理员会查找删除标记,并在一段时间之后将这些页面真正地删除。 如果你出于某种原因希望某个页面尽快被删除,你需要联系一位系统管理员让他帮你完成。
删除修订版本的功能可为那些存在特殊问题的编辑提供更好的删除控制能力。

从官网的话中可以看出,这是 MediaWiki 的一种保护机制,为了避免在协同工作中误删某些条目,但是对于个人站点而言,编辑者可能就你一个人,并且你也很清楚哪些是可以删除的,那么这种保护机制就会使得数据库中的内容得到保留而变得越来越大。

1、备份数据库

说到底,所有的内容都是存储在数据库中的,所以在进行操作前最好还是备份一下数据库。

2、运行控制台

MediaWiki 的维护脚本需要在控制台下运行,其位于/wiki目录/Maintenance/。

3. 删除被删文件

在控制台下输入如下代码:

php deleteArchivedFiles.php --delete

如果你收到在“已删除”组中未找到文件的消息,则可能意味着已经手动删除了这些文件。在这种情况下,你需要通过手动清空[数据表前缀]_filearchive表(例如,使用phpMyAdmin)来完成工作。

4、删除被删版本

在控制台下输入如下代码:

php deleteArchivedRevisions.php --delete

注意:经过上述操作之后,你会发现在删除日志中仍然保留了你之前的删除记录,但是如果你选择还原就会发现根本不起作用。MediaWiki 只是保留了日志而已。

5、删除历史版本

php deleteOldRevisions.php --delete

用于从数据库的修订表中删除所有旧(非当前)修订。你会发现所有的页面都之存在当前的版本了,此时你打开最近修改就只剩所有页面的唯一修订版本。
以上代码适用于所有的修订版本,但如果只想针对特定的条目,可以加入ID号(比如页面号1, 2, 15和38)

php deleteOldRevisions.php --delete 1 2 15 38

注意:使用该命令时y一定要慎重使用,这个可是连页面带日志都没有了的。

最后输入如下代码:

php purgeOldText.php --purge

处理完之后,打开网页的速度嗖嗖的,而且数据库也变小不少。

最后修改:2020 年 06 月 26 日
如果觉得我的文章对你有用,请随意赞赏