我是一个沉重的mongo用户。
我从强烈的即将到来的危机感中发行这张票,想知道其他人对此的看法。
此提案与notablescan选项的功能有关。
这不是针对程序员,而是针对经常运营超过数百GB的mongo运营商。
我们可以通过向超过数百GB的集合发送没有索引字段的查询来轻松杀死我们的mongod。
更糟糕的是,我们通过简单的拼写错误指定不存在的字段原因来获得相同的结果。
notablescan选项的功能可以防止这些灾难性事件。
特别是在生产数据库上。
但目前,可能会将这句话添加到mongo-docs。
不要运行生产:程序:
mongod
实例与
:参数:notablescan
因为防止表扫描可以 可能会影响所有数据库中的查询,包括 行政问询。
我认为,保持我们的mongo系统安全是错误的政策。
相反,我想成为notablescan选项适用于每个DB或每个COLLECTION。
如果您同意,请投票(右上)。
答案 0 :(得分:1)
以下是您可以做的建议:
在mongodb 2.6.x中有一个$maxTimeMS和documentation says
$ maxTimeMS运算符指定累计时间限制 用于处理游标操作的毫秒数。 MongoDB的 在最早的中断点中断操作。
因此,您可以使用此db.collection.find({...}).maxTimeMS(msTime)
来确保查询不会花费太长时间。然后你可以分析在你的时间限制中究竟没有的东西并相应地采取行动。