为了证明我的搜索引擎优化工作对我们的某个网站有多好,一个居住在同一个域的wiki在2天内获得了2601个垃圾邮件页面(巧合,2天前在SERP上列出......)。 / p>
我已将wiki锁定(只读),启用阻止列表,Captchas等,并使用Nuke扩展程序删除所有垃圾邮件。
现在,这对于一次扩展来说是非常了不起的,但它仍然留下了一些东西,我很乐意将其删除。
基本上,Nuke(我认为它是官方扩展名)在下表中留下了“孤儿”记录:pagelinks,searchindex,users。
我没有问题删除周围的记录,但我不想通过随机修剪的东西打破数据库关系一致性。 我能够理解如何执行SQL查询,Linux命令行脚本和各种高级内容。
所以,以下是一些了解Mediawiki内部的StackOverflow读者的一些问题:
我可以自由删除用户表行吗?我只需要保留两行,这样SQL查询就很容易了。我只是不想因为其他表需要链接到它们而引起副作用。
如何删除网页链接中的孤立记录?他们清楚地指出现在已经过去的页面了,但我使用的默认维护Mediawiki脚本(首先是nuke扩展,然后是rebuildall.php
)并没有削减那些孤儿。
这让我相信我可能仍然有垃圾,导致脚本不删除指向它的链接。但是我已经对页面进行了三次检查...只剩下我们制作的几页了。我也清除了修订版。
我尝试过使用控制台refreshLinks.php
和orphans.php
脚本,但他们没有做任何相关的事情。
我确信pagelinks表可以进一步减少,因为通过使用dumpLinks.php
控制台维护脚本,我可以轻松地查找各种“不方便”的单词和链接。
答案 0 :(得分:-1)
希望您每天至少备份一次数据库。在这种情况下,假设维基是新的,最简单的方法是简单地恢复到数据库的非垃圾邮件版本,并在这两天内提醒或手动重复更改。
通常,关系数据库应该具有严格的关系,通过呈现错误或级联您的操作,不允许您将其置于不一致状态。不知道MediaWiki如何定义它的关系。
我已从用户表中删除了行,但未发现任何问题。 我建议从pagelinks表中删除行,看看会发生什么。
您可以通过在其上启动自动抓取工具并查看是否出现任何错误来验证您的wiki的完整性。