首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Freebase MQL查询在获取随机记录时非常慢

问Freebase MQL查询在获取随机记录时非常慢
EN

Stack Overflow用户
提问于 2012-07-17 00:24:48
回答 1查看 252关注 0票数 2

因为无法使用MQL获取随机记录,所以我尝试先使用计数来获取它:

代码语言:javascript
复制
[{ "return": "count", "id": null, "name": null, "type": "/people/person"}]​

并且通过在0和total / records per page之间使用随机页号n。在本例中,大约有2.000.000条记录(40.000页,每页50条记录)。然后我发送一个带有"page“属性的信封,并且我还将查询限制为在第n页中获取50条记录:

代码语言:javascript
复制
[{ "limit": 50, "id": null, "name": null, "type": "/people/person"}]​

在信封中:

代码语言:javascript
复制
{"page": n}

然而,当为n > 50时,这个查询非常慢。当n > 100和(例如)使用n > 2000时它甚至不返回时,它会慢得可怕。

我能做些什么来获得随机记录吗?我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-17 00:57:02

当您这样做时,数据库必须获取所有较早的记录,以便它可以计数到您想要的记录。这就是为什么它这么慢的原因。你可以做几件不同的事情:

  1. 使用Freebase数据转储,为随机人员生成Freebase MID列表,然后通过MQL查询或整个任务(您没有说您正在获取什么信息)
  2. 将随机化问题转换为另一种更容易计算的形式。例如,您可能首先为主题选择一个随机创建时间范围(1997-现在),然后选择一个在该时间范围内创建的随机人主题。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11508467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档