更新时间:2024-08-19 GMT+08:00
分享

联合索引概述

联合索引指的是包含两个属性或者多个属性的索引,又称为组合索引。工业数字模型驱动引擎-数据建模引擎(xDM Foundation,简称xDM-F)提供了三种高效易用的索引类型:普通索引、唯一索引和唯一键索引忽略大小写。您可以在数据模型“功能配置”页签下添加索引时,指定索引类型并添加索引属性。

  • 普通索引:即非唯一索引,是在数据模型中的某一个属性或者多个属性组合建立的索引,允许被索引的单个属性或者多个属性包含重复值,不要求唯一。例如某企业存在同姓名的员工,您需要根据姓名查询员工个人资料时,可能会出现多条数据。
  • 唯一索引:用于确保数据模型中的某一个属性或者多个属性具有唯一值。此索引类型大小写敏感,即:如果两条记录的索引属性的值只有大小写不同,那么它们会被认为是不同的值。
  • 唯一索引忽略大小写:与唯一索引相同,也是用于确保数据模型中的某一个属性或者多个属性具有唯一值,但此索引类型大小写不敏感。当您需要在唯一索引中忽略大小写,可使用此类型。

属性优先级

联合索引内属性具有优先级。属性优先级通过属性在列表中的位置来表示,列表顶端属性优先级最高,最先匹配;列表底端属性优先级最低。

支持的范围

  • 支持数据模型本身的属性。
  • 支持从父模型继承的所有属性。

不支持的范围

  • 应用设计态添加索引时,不支持选择RdmDeleteFlag和MasterId属性。
  • 不支持JSON、文件、URL和长文本类型的属性。
  • 选择“普通索引”时,如果属性的约束信息包含如下定义,则不支持。
    • “入库”“否”的属性。
    • “多值”“是”的属性。
    • “唯一键”“是”的属性。
  • 选择“唯一索引”时,如果属性的约束信息包含如下定义,则不支持。
    • “入库”“否”的属性。
    • “多值”“是”的属性。
    • “唯一键”“是”的属性。
  • 选择“唯一索引忽略大小写”时,如果属性的约束信息包含如下定义,则不支持。
    • “入库”“否”的属性。
    • “多值”“是”的属性。
    • “唯一键”“是”的属性。

联合索引与单索引的区别

表1 联合索引与单索引的区别

对比项

联合索引

单索引

特点

  • 在两个属性或者多个属性上创建的索引,用于加快多个属性的联合查询、排序或过滤操作。
  • 多条件查询时,联合索引使用最左匹配原则,快速定位至需要的数据行,提高查询效率。

    例如,添加了3个属性的联合索引(a,b,c),相当于添加了索引:(a)(a,b)(a,b,c)

  • 在单个属性上创建的索引,用于加快对该属性的查询、排序或过滤操作。
  • 多条件查询时,如果创建多个单索引,只会生效第一个创建的索引。

应用场景

适用于查询条件涉及多个属性的情况,例如根据用户ID和状态查找数据、根据多个属性的组合进行排序等。

适用于查询条件涉及单个属性的情况,例如根据用户ID查找用户、根据日期范围查询数据等。

应用设计态

支持在构建数据模型时,在“功能配置”页签中的设置规则 > 联合索引管理进行定义。

支持在创建属性时,在“约束信息”中的“索引”进行定义。

应用运行态

支持在“数据模型管理”管理数据实体/关系实体时,在“功能配置”页签中的设置规则 > 索引管理进行定义。

使用限制

  • 应用设计态创建的联合索引,需依次完成发布实体 > 发布应用 > 部署应用的操作,才可在应用运行态创建数据实例时执行。
  • 应用运行态中,仅支持在“basicTenant”租户下管理索引,且应用运行态下创建的索引立即生效。

相关文档