MAPREDUCE服务 MRS-基于二级索引的查询:功能介绍

时间:2023-11-13 09:56:24

功能介绍

针对添加了二级索引的用户表,您可以通过Filter来查询数据。其数据查询性能高于针对无二级索引用户表的数据查询。

  • HIndex支持的Filter类型为“SingleColumnValueFilter”,“SingleColumnValueExcludeFilter”以及“SingleColumnValuePartitionFilter”。
  • HIndex支持的Comparator为“BinaryComparator”,“BitComparator”,“LongComparator”,“DecimalComparator”,“DoubleComparator”,“FloatComparator”,“IntComparator”,“NullComparator”。

二级索引的使用规则如下:

  • 针对某一列或者多列创建了单索引的场景下:
    • 当查询时使用此列进行过滤时,不管是AND还是OR操作,该索引都会被利用来提升查询性能。

      例如:Filter_Condition(IndexCol1) AND/OR Filter_Condition(IndexCol2)

    • 当查询时使用“索引列AND非索引列”过滤时,此索引会被利用来提升查询性能。

      例如:Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol2) AND Filter_Condition(NonIndexCol1)

    • 当查询时使用“索引列OR非索引列”过滤时,此索引将不会被使用,查询性能不会因为索引得到提升。

      例如:Filter_Condition(IndexCol1) AND/OR Filter_Condition(IndexCol2) OR Filter_Condition(NonIndexCol1)

  • 针对多个列创建的联合索引场景下:
    • 当查询时使用的列(多个),是联合索引所有对应列的一部分或者全部,且列的顺序与联合索引一致时,此索引会被利用来提升查询性能。

      例如,针对C1、C2、C3列创建了联合索引,生效的场景包括:

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

      Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol2)

      Filter_Condition(IndexCol1)

      不生效的场景包括:

      Filter_Condition(IndexCol2) AND Filter_Condition(IndexCol3)

      Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol3)

      Filter_Condition(IndexCol2)

      Filter_Condition(IndexCol3)

    • 当查询时使用“索引列AND非索引列”过滤时,此索引会被利用来提升查询性能。

      例如:

      Filter_Condition(IndexCol1) AND Filter_Condition(NonIndexCol1)

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

    • 当查询时使用“索引列OR非索引列”过滤时,此索引不会被使用,查询性能不会因为索引得到提升。

      例如:

      Filter_Condition(IndexCol1) OR Filter_Condition(NonIndexCol1)

      (Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol2))OR ( Filter_Condition(NonIndexCol1))

    • 当查询时使用多个列进行范围查询时,只有联合索引中最后一个列可指定取值范围,前面的列只能设置为“=”。

      例如:针对C1、C2、C3列创建了联合索引,需要进行范围查询时,只能针对C3设置取值范围,过滤条件为“C1=XXX,C2=XXX,C3=取值范围”。

  • 针对添加了二级索引的用户表,可以通过Filter来查询数据,在单列索引和复合列索引上进行过滤查询,查询结果都与无索引结果相同,且其数据查询性能高于无二级索引用户表的数据查询性能。
support.huaweicloud.com/devg-lts-mrs/mrs_07_080027.html