中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

基于索引查询数据

在具有索引的用户表中,可以使用SingleColumnValueFilter来查询数据。当查询条件可以命中索引时,查询速度远快于原表查询。

使用方法

索引的命中规则如下。

  • 多个AND条件查询。

    当用于查询的列至少包含索引第一个列时,使用索引会提高查询性能。

    例如,为IndexCol1、IndexCol2和IndexCol3创建组合索引。

    该索引在以下情况下生效。

    Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2)AND Filter_Condition(IndexCol3)
    Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2)
    Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol3)
    Filter_Condition(IndexCol1)
    Filter_Condition(IndexCol1)AND Filter_Condition(NonIndexCol1)
    Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2)AND Filter_Condition(NonIndexCol1)

    该索引在下列情况下不生效。

    Filter_Condition(IndexCol2)AND Filter_Condition(IndexCol3)
    Filter_Condition(IndexCol2)
    Filter_Condition(IndexCol3)
    Filter_Condition(NonIndexCol1)
  • 多个OR条件查询。

    例如,为C1、C2和C3创建组合索引。

    • 仅对索引列首个字段进行过滤时(支持范围过滤),使用索引可提高查询性能。
      Filter_Condition(IndexCol1)OR Filter_Condition(IndexCol1)OR Filter_Condition(IndexCol1)
    • 对多个索引列进行过滤时,无法命中索引,查询性能不会提高。
      Filter_Condition(IndexCol1)OR Filter_Condition(IndexCol2)
    • 对索引和非索引列进行过滤时,无法命中索引,查询性能不会提高。
      Filter_Condition(IndexCol1)OR Filter_Condition(NonIndexCol1)
    • 特殊情况,当OR的每个部分都能命中索引,可以命中索引,提高查询性能。
      (Filter_Condition(IndexCol1)AND Filter_Condition(NonIndexCol1))OR(Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2))

使用建议

  • 尽可能让索引列和覆盖列能完全覆盖查询列和查询条件列,这样子可以通过只查询索引表来获取数据,性能更优
  • 当在查询条件中不止有索引列的时候,尽可能让这些非索引列能命中覆盖列,命中覆盖列可以在查询索引表时使用这些查询条件,从而筛选更多数据
  • 减少OR条件使用,尤其是OR条件+范围条件,命中索引的情况下也会造成大范围查询,速度较慢。
  • 由于索引列是有序的,查询条件尽可能存在更多从头连续的索引列。且这些从头连续的索引列的条件只能为单个或多个指定值,如果为区间的话,从头连续的索引列则到条件为区间的这个索引列为止,之后的索引列则会被用于查询索引表时的过滤器。更多索引列的使用,通常筛选能力更强,性能更优。
  • 由于索引表不继承数据表的时间戳,不建议使用索引查询结果的时间戳信息。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词