gpt4 book ai didi

Python + MongoDB - 游标迭代太慢

转载 作者:太空狗 更新时间:2023-10-29 19:33:53 25 4
gpt4 key购买 nike

我实际上在从事搜索引擎项目。我们正在使用 python + mongoDb。

在对 mongo 数据库执行 find() 命令后,我有一个 pymongo 游标。 pymongo 游标有大约 20k 个结果。

我注意到,与正常迭代相比,pymongo 游标上的迭代非常慢,例如相同大小的列表。

我做了一个小基准测试:

  • 迭代包含 20k 个字符串的列表:0.001492 秒
  • 在 pymongo 游标上迭代 20k 个结果:1.445343 秒

差别真的很大。如此数量的结果可能不是问题,但如果我有数百万个结果,时间将是 Not Acceptable 。

有没有人知道为什么 pymongo 游标太慢而无法迭代?知道如何在更短的时间内迭代游标吗?

一些额外的信息:

  • Python v2.6
  • PyMongo v1.9
  • MongoDB v1.6 32 位

最佳答案

您的 pymongo 安装是否使用包含的 C extensions

>>> import pymongo
>>> pymongo.has_c()
True

我上周的大部分时间都在尝试调试一个中等大小的查询和相应的处理,该查询需要 20 秒才能运行。一旦安装了 C 扩展,整个相同的过程大约需要一秒钟。

要在 Debian 中安装 C 扩展,请在运行简易安装之前安装 python 开发头文件。就我而言,我还必须删除旧版本的 pymongo。请注意,这将从 C 编译二进制文件,因此您需要所有常用工具。 (海湾合作委员会等)

# on ubuntu with pip
$ sudo pip uninstall pymongo
$ sudo apt-get install python-dev build-essential
$ sudo pip install pymongo

关于Python + MongoDB - 游标迭代太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5480340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com