为了证明我的SEO工作对我们的一个网站有多好,一个驻留在同一域的wiki在2天内收到了2601个垃圾邮件页面(巧合,2天前在SERP上列出......
我已经锁定了wiki(只读(,启用了阻止列表,验证码等,并使用Nuke扩展程序删除了所有垃圾邮件。
现在,这对于一个扩展来说是了不起的,但它仍然在这里和那里留下了一些东西,我很想修剪掉。
基本上,Nuke(我认为这是一个官方扩展(在下表中留下了"孤立"记录:页面链接,搜索索引,用户。
我在删除记录方面没有问题,但我不想通过随机修剪内容来破坏数据库关系一致性。我能够理解如何执行SQL查询,Linux命令行脚本和各种高级内容。
因此,这里有一些问题要问一些了解Mediawiki内部的有用的StackOverflow读者:
-
我可以自由删除用户表格行吗?我只需要保留两行,以便SQL查询很容易。我只是不想对其他表可能需要链接到它们的任何表造成副作用。
-
我该怎么做才能删除页面链接中的孤立记录?他们清楚地指向现在已经消失的页面,但我使用的默认维护Mediawiki脚本(首先是nuke扩展,然后是
rebuildall.php
(并没有修剪掉那些孤儿。这让我相信我可能仍然在某处有垃圾,导致脚本无法删除指向它的链接。但是我已经三重检查了页面...只剩下我们制作的几页了。我也清除了修订版。
我尝试使用控制台refreshLinks.php
并orphans.php
脚本,但它们没有做任何相关操作。
我相信页面链接表可以进一步修剪,因为通过使用dumpLinks.php
控制台维护脚本,我可以轻松地 grep 各种"不方便"的单词和链接。
希望您每天至少备份一次数据库。在这种情况下,假设 wiki 相当新,最简单的方法是简单地恢复到数据库的非垃圾邮件版本并发出警报或手动重复在这两天内完成的更改。
通常,关系数据库应具有严格的关系,不允许通过显示错误或级联操作使其处于不一致状态。不确定MediaWiki如何定义其关系。
我已经从用户表中删除了行,但没有发现任何问题。我建议从页面链接表中删除行,看看会发生什么。
您可以通过在其上启动自动爬虫并查看是否出现任何错误来验证您的wiki的健全性。