Firestore:复合索引在带有多个where子句的查询上是否表现更好?

陈凯文

我有以下代码:

foldersRef.where("ParentID", "==", "1").where("Deleted", "==", false)
  1. 对于此查询,复合索引(ParentIDDeleted)是否比单字段索引更可取?
  2. 如果我也有个人单场指数ParentIDDeleted,将公司的FireStore知道使用复合指数?
  3. 创建复合索引时,字段顺序重要吗?
  4. 我的.where()子句/函数调用的顺序重要吗?
亚历克斯·莫莫
  1. 对于此查询,复合索引(索引ParentID和Deleted)是否比单字段索引更好?

如果您使用以下代码行:

foldersRef.where("ParentID", "==", "1").where("Deleted", "==", false)

如果没有任何排序(升序或降序),则无需创建复合索引。Firestore将自动创建所需的索引。

  1. 如果我还有用于ParentID和Deleted的单个单字段索引,Firestore会知道使用复合索引吗?

不会。Fiestore也会自动创建单字段索引。因此,无需为单个字段创建任何索引。除此之外,如果您具有按顺序排列的单独的字段索引,这并不意味着您也为这些字段具有复合索引。您需要创建自己。

  1. 创建复合索引时,字段顺序重要吗?

是的,如果您更改where()呼叫顺序,则还需要相应地创建相应的索引。

  1. .where()子句/函数调用的顺序重要吗?

在速度方面,只要您创建正确的索引,就不会。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

iOS-Firestore复合索引中索引的多个orderBy和where子句

具有基于参数的多个where子句的Firestore查询

带有两个“orderby”子句的复合查询在 Android Firestore 中不起作用

带有多个 OR 的 Where 子句

进行一次选择查询时,查询是否有可能采用多个索引(单索引或复合索引)

带有多个子句的 Numpy 索引

是否有一个带有多个where子句的select查询在一个结果表中返回多个结果行?

NHibernate带有in子句的多个子查询

带有where子句的Django选择查询

MySQL:强制查询在WHERE子句中使用带有局部变量的索引

Firestore:多个 where 子句

Cassandra:具有多个WHERE子句的查询的二级索引

在带有where子句的android上运行sqlite查询时,我没有任何结果

使用带有多个where子句的查询构建器的Join语句

使用多个条件where子句的Flutter Cloud FireStore查询

SELECT 上的子查询,其后带有条件 WHERE 子句

多个表上的带有 WHERE 子句的 SQL JOIN 速度变慢

Mysql 查询 - 带有子查询结果的 where 子句

简短说明是否有更好的表现?

MySQL LIKE where带有参数的子句不使用索引

具有许多where子句的性能表现

有人可以建议使用带有多个“ where”子句的Doctrine(QueryBuilder)进行此查询的方法吗?

Firestore:多个条件where子句

Postgres-具有多个where子句的索引

ElasticSearch - 带有多个子句的过滤查询 ES 5

SQL查询中带有总和的Where子句

SQL查询类似于带有AND条件而不是OR的IN where子句

Rails 在带有连接的 where 子句中运行 AND 查询

带有 INNER JOIN 和子查询的 WHERE 子句