Mongodb查询速度太慢,部分字段搜索索引字段
我有以下mongodb文件与800万文件。Mongodb查询速度太慢,部分字段搜索索引字段
Customer {
"lastName" : "LAST",
"firstName" : "FIRST"
}
如果我在10毫秒的基础上的lastName和名字,那么它的速度快,得到的结果与搜索我有以下指标
db.customer.createIndex({lastName: 1, firstName: 1},{collation: { locale: "en_US", strength: 1}})
。
db.customer.find({lastName:"LAST" ,firstName:"FIRST"}).collation({ locale: 'en_US', strength: 1 })
我正在尝试查找所有以“姓氏”作为姓氏中的字符的文档。但它需要超过100秒才能返回响应。我尝试了以下选项,但都花了超过100秒。 不MongoDB的确实像SQL有点像操作('%AS%')
1)
db.customer.find({lastName:{"$regex": "AS"} ,firstName:"FIRST"}).collation({ locale: 'en_US', strength: 1 })
2)
db.customer.find({lastName:{"$regex": "/AS/"} ,firstName:"FIRST"}).collation({ locale: 'en_US', strength: 1 })
3)
db.customer.find({lastName:{"$regex": "^/AS/"} ,firstName:"FIRST"}).collation({ locale: 'en_US', strength: 1 })
的在你的正则表达式回答:
尝试使用前缀,使MongoDB的使用范围
db.customer.find({lastName:{"$regex": "/^AS/"} ,firstName:"FIRST"}).collation({ locale: 'en_US', strength: 1 })
正则表达式是一个“前缀表示”如果以尖号开始(^)或左锚(\ A),后跟一串简单的符号。例如,正则表达式/^abc。 /将通过仅匹配以abc开头的索引值进行优化。 另外,虽然/^a /,/^a。 /和/^a。 $ /匹配等效字符串,它们具有不同的性能特征。如果存在适当的索引,所有这些表达式都使用索引;不过,/^a。 /和/^a.*$/较慢。/^ a /可以在匹配前缀后停止扫描。
regex
以上是 Mongodb查询速度太慢,部分字段搜索索引字段 的全部内容, 来源链接: utcz.com/qa/260586.html