0

为了证明我的 SEO 工作对我们的一个网站有多好,位于同一域的 wiki 在 2 天内收到了 2601 个垃圾邮件页面(巧合,2 天前在 SERP 上列出......)。

我已将 wiki 锁定(只读),启用阻止列表、验证码等,并使用 Nuke 扩展删除所有垃圾邮件。

现在,这对于一个扩展来说是了不起的,但它仍然到处留下一些东西,我很想修剪掉。

基本上,Nuke(我认为它是一个官方扩展)在下表中留下了“孤立”记录:页面链接、搜索索引、用户。

我删除周围的记录没有问题,但我不想通过随机修剪东西来破坏数据库的关系一致性。我能够理解如何执行 SQL 查询、Linux 命令行脚本和各种高级的东西。

因此,对于一些了解 Mediawiki 内部的有用 StackOverflow 读者,这里有一些问题:

  • 我可以自由删除用户表行吗?我只需要保留两行,以便 SQL 查询很容易。我只是不想对可能需要链接到它们的任何其他表造成副作用。

  • 我可以做些什么来删除页面链接中的孤立记录?他们清楚地指出现在已经消失的页面,但是我使用的默认维护 Mediawiki 脚本(首先是 nuke 扩展,然后rebuildall.php是 )并没有修剪掉那些孤儿。这让我相信我可能在某处仍有垃圾,导致脚本无法删除指向它的链接。但是我已经三次检查了这些页面......只剩下我们制作的几页了。我也清除了修订版。

我试过使用控制台refreshLinks.phporphans.php脚本,但他们没有做任何相关的事情。

我确信 pagelinks 表可以进一步精简,因为通过使用dumpLinks.php控制台维护脚本,我可以轻松地 grep 各种“不方便”的单词和链接。

4

1 回答 1

-1

希望您每天至少备份一次数据库。在这种情况下,假设 wiki 相当新,最简单的方法可能是简单地恢复到您的数据库的非垃圾邮件版本并提醒或手动重复这两天所做的更改。

通常,关系数据库应该具有严格的关系,不允许您通过呈现错误或级联操作而使其处于不一致状态。不确定 MediaWiki 定义其关系的程度如何。

我已经从 users 表中删除了行并且没有发现任何问题。我建议从 pagelinks 表中删除行,看看会发生什么。

您可以通过在其上启动自动爬虫并查看是否出现任何错误来验证您的 wiki 的健全性。

于 2014-12-04T04:00:56.613 回答