在表格中我有4列:
optionModel.findById(optionId)
.elemMatch('voters.user', { _id: { $eq: $userId } })
.exec()
我有两个查询如下:
(a(int),b(int),c(var-char),d(var-char))
现在指数方法:
OR
哪一种方法更好?
答案 0 :(得分:0)
最好是尝试一下。除非您知道您计划使用的数据是什么,否则无法确定哪些索引更好。最好的方法是创建表格,插入一些采样数据,然后使用EXPLAIN
或EXPLAIN ANALYZE
进行一些典型查询。
一个例子是
EXPLAIN select *from table where a=1 and b=2 and c="abc";
EXPLAIN select *from table where a=1 and b=2 and d="zyz";
或
EXPLAIN ANALYZE select *from table where a=1 and b=2 and c="abc";
EXPLAIN ANALYZE select *from table where a=1 and b=2 and d="zyz";
另见http://www.postgresql.org/docs/9.5/static/sql-explain.html