首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么使用django干草堆切片查询太慢?

为什么使用django干草堆切片查询太慢?
EN

Stack Overflow用户
提问于 2014-11-24 10:00:20
回答 1查看 569关注 0票数 0

我用whoosh作为搜索后端。

当我只得到3个搜索结果时,代码:

#!/usr/bin/python # -*-编码: utf-8 -*-导入sys sys.path.append('/home/guomeng/projects/tapplex_ringtones')导入os os.environ‘’DJANGO_python_MODULE‘= "tapplex_ringtones.settings“从haystack.query导入SearchQuerySet从ringtones.models进口铃声导入时间query_word =u’‘sky’t0 = time.time() sqs = time.time() sqs =time.time打印t1 - t0

结果是:

代码语言:javascript
复制
[<SearchResult: ringtones.ringtone (pk=u'1730')>, <SearchResult: ringtones.ringtone (pk=u'28959')>, <SearchResult: ringtones.ringtone (pk=u'25889')>]
0.422543048859> 0.422543048859

当我得到所有搜索结果时,代码:

#!/usr/bin/python # -*-编码: utf-8 -*-导入sys sys.path.append('/home/guomeng/projects/tapplex_ringtones')导入os os.environ‘’DJANGO_python_MODULE‘= "tapplex_ringtones.settings“从haystack.query导入SearchQuerySet从ringtones.models进口铃声导入时间query_word =u’‘sky’t0 = time.time() sqs = time.time() sqs =time.time打印t1 - t0

结果是:

代码语言:javascript
复制
[<SearchResult: ringtones.ringtone (pk=u'1730')>, <SearchResult: ringtones.ringtone (pk=u'28959')>, <SearchResult: ringtones.ringtone (pk=u'25889')>, <SearchResult: ringtones.ringtone (pk=u'5303')>, <SearchResult: ringtones.ringtone (pk=u'5335')>, <SearchResult: ringtones.ringtone (pk=u'5411')>, <SearchResult: ringtones.ringtone (pk=u'1212')>, <SearchResult: ringtones.ringtone (pk=u'28473')>, <SearchResult: ringtones.ringtone (pk=u'23867')>, <SearchResult: ringtones.ringtone (pk=u'27087')>, <SearchResult: ringtones.ringtone (pk=u'26849')>, <SearchResult: ringtones.ringtone (pk=u'2973')>, <SearchResult: ringtones.ringtone (pk=u'2645')>, <SearchResult: ringtones.ringtone (pk=u'31007')>, <SearchResult: ringtones.ringtone (pk=u'11637')>, <SearchResult: ringtones.ringtone (pk=u'16957')>, <SearchResult: ringtones.ringtone (pk=u'106')>, <SearchResult: ringtones.ringtone (pk=u'2481')>, <SearchResult: ringtones.ringtone (pk=u'15697')>]
0.19460105896

为什么我得到的所有结果都是快速的?

EN

回答 1

Stack Overflow用户

发布于 2014-11-24 10:39:58

可能是因为:

代码语言:javascript
复制
SearchQuerySet().models(Ringtone).filter(content=query_word)[:3]

做每件事

代码语言:javascript
复制
SearchQuerySet().models(Ringtone).filter(content=query_word)

但是,也会用限制子句更新查询集,并返回一个新的查询集。这可以解释全部或部分时差。要获得有意义的结果,您需要平均处理许多调用所花费的时间,并分析一些内部代码--即DB处理查询所需的时间,以及查询实际上是什么等等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27102087

复制
相关文章

相似问题

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