tencent cloud

文档反馈

最后更新时间:2020-06-09 15:55:18

    索引概述

    您可以在一个表上创建索引,利用索引,可以快速从数据库中获取您需要的数据,并且将为您的应用程序在数据查询方面提供更大的灵活性。

    TcaplusDB 支持两种类型的索引:

    • 本地索引:必须由主键字段构成,支持以主键作为条件进行快速查询。
    • 全局索引:支持由除 message 类型之外的任意字段构成,可按照全局索引中配置的字段为条件进行快速查询。

    TcaplusDB 最大支持1个全局索引,6个本地索引。

    本地索引

    本地索引只能在创建表时进行定义,并且只能由主键字段构成。所有索引字段集合的交集不能为空。
    例如一张表存在4个主键字段,如下示例的 HeroInfo 表,其中 heroId、heroName、heroFightingType、heroQuality 为此表的主键字段。

    {
        heroId:1,
        heroName:"Arthur",
        heroFightingType:1,
        heroQuality:3
        heroSkill:{
            BasicSkill1:1,
            BasicSkill2:2,
            SpecialSkill:3
        },
        heroLevel:12,
        heroskin:2,
        heroAttackpower:141,
        heroPhysicalDefense: 283,
        heroMagicdefense:124
    }
    {
        heroId:4,
        heroName:"Shooter",
        heroFightingType:3,
        heroQuality:4
        heroSkill:{
            BasicSkill1:1,
            BasicSkill2:2,
            SpecialSkill:3
        },
        heroLevel:11,
        heroskin:1,
        heroAttackpower:225,
        heroPhysicalDefense: 57,
        heroMagicdefense:41
    }

    针对上表来说,可以根据4个主键字段自由组合而进行创建索引,但要求所有创建的索引交集不能为空。例如以 heroId 作为交集字段,进行索引的设计,就有如下几种组合方案:

    • heroId,heroName
    • heroId,heroFightingType
    • heroId,heroQuality
    • heroId,heroName,heroFightingType
    • heroId,heroFightingType,heroQuality
    • heroId,heroName,heroFightingType,heroQuality
      同时您可以根据以上创建了索引的字段进行数据查询。在进行索引创建时,请根据业务的实际需求进行创建,否则会因为索引冗余而降低性能。

    全局索引

    在前面显示的 HeroInfo 表中,您可以根据已经创建的本地索引中所包含的字段为条件查询数据项。如果您还想要按 heroLevel 和 heroskin 等信息查询数据,可将 heroLevel 和 heroskin 字段加入到全局索引中,然后通过全局索引中所包含的字段进行数据查询。
    请注意,全局索引同样也不支持嵌套类型,如上示例表中的 heroSkill 字段。

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持