Python 如何在mongo中优化按日期查找查询

Python 如何在mongo中优化按日期查找查询,python,mongodb,query-optimization,pymongo,nosql,Python,Mongodb,Query Optimization,Pymongo,Nosql,我收集了60万份文件。大多数文档的结构如下所示 { "_id" : ObjectId("53d86ef920ba274d5e4c8683"), "checksum" : "2856caa9490e5c92aedde91330964488", "content" : "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xh

我收集了60万份文件。大多数文档的结构如下所示

{
    "_id" : ObjectId("53d86ef920ba274d5e4c8683"),
    "checksum" : "2856caa9490e5c92aedde91330964488",
    "content" : "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"bn-bd\" lang=\"bn-bd\" dir=\"ltr\" " />\n  <link rel=\"stylesheet\" href=\"/templates/beez_20/css/position.css\" type=\"text/css\" media=\"screen,projection\ef=\"/index.php/bn/contact-bangla/2013-0</body>\r\n</html>",
    "date" : ISODate("2014-07-29T15:57:11.886Z"),
    "filtered_content" : "",
    "indexed" : true,
    "category": 'raw',
    "link_extracted" : 1,
    "parsed" : true,
    "title" : "Constituency 249_10th_En",
    "url" : "http://www.somesite.com.bd/index.php/bn/bangla/2014-03-23-11-45-04?layout=edit&id=2143"
}
索引是

_id, url, parsed

如何将此查询的性能提高到可接受的时间量?任何可靠的答案、建议都将不胜感激

似乎在
类别
日期
上添加索引会有所帮助

pages.createIndex({'date': 1, 'category': 1});
在pymongo,看起来更像这样:

keys = [
    ("date", pymongo.ASCENDING),
    ("category", pymongo.ASCENDING)
]
pages.create_index(keys)
您最可能感兴趣的选项是:

name: custom name to use for this index - if none is given, a name will be generated
unique: if True creates a unique constraint on the index

不过,我并不认为日期/类别是唯一的。给索引命名似乎是一种很好的做法。

类别
日期
上添加索引似乎会有所帮助

pages.createIndex({'date': 1, 'category': 1});
在pymongo,看起来更像这样:

keys = [
    ("date", pymongo.ASCENDING),
    ("category", pymongo.ASCENDING)
]
pages.create_index(keys)
您最可能感兴趣的选项是:

name: custom name to use for this index - if none is given, a name will be generated
unique: if True creates a unique constraint on the index

不过,我并不认为日期/类别是唯一的。给索引命名似乎是一个好做法。

这是您唯一的索引吗?你们有日期索引吗?刚从mongodb开始。对更多的索引有点怀疑。不,我没有最新的索引。在本地开发期间,您可以做的一件事是将mongodb配置为在不使用索引的情况下使查询失败。或者它只是在日志中列出这样的查询:这将允许您确保查询尽可能快地运行。您还可以寻找满足查询的索引的最小子集。这是您唯一的索引吗?你们有日期索引吗?刚从mongodb开始。对更多的索引有点怀疑。不,我没有最新的索引。在本地开发期间,您可以做的一件事是将mongodb配置为在不使用索引的情况下使查询失败。或者它只是在日志中列出这样的查询:这将允许您确保查询尽可能快地运行。您还可以寻找满足查询的索引的最小子集。休,它是否会大规模增加内存大小?@Dewsworld MongoDB总是尽可能多地占用内存。因此,当您因为DB服务器已经使用了所有RAM而感到恐慌时,请放心,无论您做什么,情况都是如此。“这是故意的!”休布朗工作得很有魅力!请在pages.createIndex之后添加冒号({'date':1,'category'hugh,它会大规模增加内存大小吗?@Dewsworld MongoDB总是尽可能多地占用内存。因此,当你因为DB服务器已经使用了所有RAM而感到恐慌时,请放心,不管你做什么,情况都是这样。这是出于设计。@hughbrown工作得很有魅力!请在pa后面加一个冒号ges.createIndex({'date':1,'category'