【问题标题】:Wikipedia Database 'pagelinks' "What links here" SQL queryWikipedia Database 'pagelinks' “这里有什么链接” SQL 查询
【发布时间】:2012-09-24 09:29:29
【问题描述】:

我正在尝试搜索,例如对于所有文章,链接到一个特殊的维基百科文章。例如。有多少文章指向“拼车”。在“真正的”Wiki 页面上,我可以通过单击“工具箱”类别中的“这里的链接”来完成此操作。此请求所需的时间很短。

但是当我尝试通过搜索“页面链接”表以编程方式在本地安装的 Wiki 数据库上执行此类查询时,例如通过这样做SELECT * FROM `pagelinks` WHERE `pl_title` = 'Carsharing',它至少需要 1 分钟(在非常快的本地系统上)。

有什么方法可以像在“真实”Wiki 页面上一样快速获得结果?

【问题讨论】:

  • 您是否有维基百科的本地数据转储或您在哪些数据上执行此查询?您是否知道“一个非常快速的本地系统”很可能仍然比用于维基百科等网站的高端数据服务器慢?此外,这些查询很可能以某种方式被缓存。
  • 是的,本地安装完整的维基百科转储(包括 MySQL 数据库中的“页面链接”表)。谢谢
  • …别忘了LIMIT 50 MediaWiki 默认在反向链接页面上使用

标签: sql wikipedia


【解决方案1】:

在 pl_title 列(如果不存在)上创建索引可以显着提高查询的性能,将 O(n) 查找更改为 O(log(n)) 查找。

【讨论】:

  • 非常感谢 - 我会试试这个 :-)
  • 非常适合我 :-) 现在查询时间约为 0,021 秒。再次感谢:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 2010-10-21
  • 1970-01-01
  • 2014-03-12
相关资源
最近更新 更多