mongodb 正则表达式查询性能问题

Posted

技术标签:

【中文标题】mongodb 正则表达式查询性能问题【英文标题】:mongodb regex query performance issues 【发布时间】:2015-01-26 10:38:22 【问题描述】:

我正在使用 mongo java 客户端。与对同一文档的普通查询相比,使用正则表达式时,我可以看到 x100 的查询速度较慢。 所有文档都在查询中使用的字段上编制索引。 使用正则表达式在 mongodb 中搜索时如何提高查询性能?

【问题讨论】:

您可以通过编写更智能的正则表达式来稍微提高性能。但相比之下,正则表达式操作总是很慢。索引对你没有帮助,正则表达式操作永远不能使用索引。 发布一些你正在做的慢查询和一个示例文档。 @Tomalak 在某些情况下索引对正则表达式很有用(docs.mongodb.org/manual/reference/operator/query/regex/…) @joao 完全是一种的情况:当你的模式是前缀模式时。 OP 的模式可能不是。 @Tomalak 您可能应该删除第一条评论。说正则表达式操作永远不能使用索引是错误的。 @Tomalak 当然,都是真的。但是说他们“永远不能使用索引”是夸大其词。 【参考方案1】:

索引不适用于 mongodb 中的正则表达式。

【讨论】:

以上是关于mongodb 正则表达式查询性能问题的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 索引和非索引性能

使用正则表达式元素数组的 MongoDB 查询 $in

使用正则表达式元素数组的 MongoDB 查询 $in

MongoDB(课时14 正则运算)

Java对mongodb进行正则查询?

带有索引字段的 MongoDB 正则表达式