mongo 查询语句
db.t_policy.find({
$or: [{$and:[{"policy_no": "31809341900153386520"}]}, {"bill_date": "", "effective_date": "", "engine_no": "", "expire_date": "", "first_register_date": "", "license_plate_no": "", "model": "", "vin": ""}]
})
搜索条件某些字段有,某些字段可能没得,是建立单个索引,还是建议集合的索引,集合索引是不是有时命中不到呀。如果不建索引 cpu 猛升。没有这方面经验问问大家!
1
NoBugDie 2020-04-26 12:51:31 +08:00
稀疏索引???
|
2
libook 2020-04-26 13:18:03 +08:00
你把业务上会出现字段组合的情况都列出来,一一建索引就行了,但如果情况不可控,比如若干字段的所有组合情况都有的话,建议上搜索引擎,比如 Elasticsearch 。
|
3
thinkmore 2020-04-27 10:25:51 +08:00
可以参考下我的这篇文章: https://juejin.im/post/5e99136d51882573c508e278
有些字段没有你可以建立部分索引(它是稀疏索引的超集)。 然后根据你常用的查询来建立索引,用 explain 分析下。 索引建立原则,ESR(equal, sort, range) |
4
thinkmore 2020-04-27 10:27:33 +08:00
从你的 query 来看,至少 要有一个 policy_no 的索引。 后面哪些字段区分度比较高就再添加哪个字段
|