我将书籍元数据(如名称、作者、价格、出版商等)存储在 mongodb 文档中。我有大约 1000 万份这些文件,它们都在一个集合中。平均文档大小为 1.9 KB。现在我在name
,authors
和上有索引price
。事实上,我有 2 个价格指数,一个按升序排列,一个按降序排列。我的 mongodb 版本是 2.2.0,我正在使用 php 驱动程序来查询 mongo。驱动的版本是1.12。但是当我对价格进行范围查询时,我得到一个MongoCursorTimeoutException
. 在我的查询中,我试图查找某个价格范围内的书籍,例如“价格低于 1000 且高于 500”。
增加超时似乎不是一个好主意(已经是 30 秒)。我还能做些什么来加快查询过程。
编辑
实际上我的价格指数是复合的。我有一个状态字段,它有一个整数值,所以我的价格指数看起来像{price:-1,status:1}
,{price:1,status:1}
而且我试图用 PHP 一次检索 20 个文档。