System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库,特别涉及一种创建索引的方法及数据库系统。
技术介绍
1、为数据库中的数据创建索引,是一种最常用的数据库定义语义(data definitionlanguage,ddl)操作,是数据库系统运维过程中经常会发生的操作。通过索引进行查询能够加快查询速度,带来查询性能上的提升,其广泛使用于当用户需要加速查询的场景。
2、在目前的数据库系统中,在为数据库中的数据表创建索引时,计算节点需要从存储节点中读取数据表的全部数据,然后根据数据表的全部数据创建索引。
3、但是,目前创建索引的效率较低。
技术实现思路
1、本申请提供了一种创建索引的方法及数据库系统。本申请有助于提高创建索引的效率。本申请提供的技术方案如下:
2、第一方面,本申请提供了一种数据库系统。该数据库系统包括:计算节点和存储节点,存储节点存储有数据表,数据表记载有多行和多列数据。在该数据库系统中,存储节点用于确定创建索引所需的目标数据的指示信息,目标数据为目标数据表中的部分数据;存储节点还用于基于指示信息,从目标数据表中获取目标数据,并向计算节点提供目标数据;计算节点用于基于目标数据创建索引。
3、在该数据库系统中,由存储节点从目标数据表中获取创建索引所需的目标数据,并向计算节点提供目标数据,相较于相关技术,无需存储节点向计算节点传输整个目标数据表记载的数据,减少了存储节点向计算节点传输的数据量,有助于提高存储节点和计算节点之间的i/o性能。并且,也不需要计算节点执行
4、在一种实现方式中,计算节点还用于接收索引创建指令,基于索引创建指令确定指示信息,并向存储节点提供指示信息,索引创建指令指示基于目标数据创建索引。
5、可选的,计算节点在确定指示信息后,可以基于指示信息确定是否向存储节点发送指示信息,在有必要通过存储节点获取目标数据时,向存储节点提供该指示信息。在一种实现方式中,计算节点具体用于在目标数据对应的第一消耗和第二消耗满足指定条件时,向存储节点提供指示信息,第一消耗为存储节点基于目标数据表获取目标数据,并向计算节点提供目标数据产生的消耗,第二消耗为存储节点向计算节点提供目标数据表,由计算节点基于目标数据表获取目标数据产生的消耗。
6、在本申请中,计算节点向存储节点发送指示信息的实现方式可以有多种。在一种可实现方式中,计算节点可以以i/o请求的方式,向存储节点发送指示信息。例如,计算节点向存储节点发送数据获取请求,该数据获取请求请求存储节点向计算节点提供指示信息指示的目标数据。
7、在本申请中,目标数据为索引创建指令指示的目标数据表中的部分数据。在一种实现方式中,当数据表采用数据行和数据列对具有不同属性的数据进行区分时,目标数据可以包括目标数据表的指定数据单元中记载的数据,该数据单元可以为数据行或数据列。例如,目标数据可以为目标数据表的指定数据列中记载的数据。
8、进一步地,目标数据包括:目标数据表的指定数据单元中记载的部分数据。
9、在一种可实现方式中,该部分数据可以为指定数据单元中记载的数据的前缀数据、中间数据、后缀数据或指定长度的数据。例如,当指定数据单元中记载的数据的类型为字符串和/或大对象类字段时,在创建索引时,可以仅基于字符串和/或大对象类字段的前缀数据创建索引,则目标数据可以为目标数据表的指定数据列对应的数据行中记载的数据的前缀数据。
10、当目标数据为索引创建指令指示的目标数据表中指定数据单元中记载的部分数据时,通过存储节点从目标数据表中获取该目标数据,并向计算节点提供该目标数据,能够进一步地减少存储节点向计算节点传输的数据量,降低计算节点的计算负载,从而进一步提高创建索引的效率和计算节点的计算性能。
11、第二方面,本申请提供了一种创建索引的方法。该方法应用于数据库系统。数据库系统包括:计算节点和存储节点,存储节点存储有数据表,数据表记载有多行和多列数据。该方法包括:存储节点确定创建索引所需的目标数据的指示信息,目标数据为目标数据表中的部分数据;存储节点基于指示信息,从目标数据表中获取目标数据,并向计算节点提供目标数据;计算节点基于目标数据创建索引。
12、可选的,在存储节点确定创建索引所需的目标数据的指示信息之前,该方法还包括:计算节点接收索引创建指令,基于索引创建指令确定指示信息,并向存储节点提供指示信息,索引创建指令指示基于目标数据创建索引。
13、可选的,计算节点向存储节点提供指示信息,包括:计算节点在目标数据对应的第一消耗和第二消耗满足指定条件时,向存储节点提供指示信息,第一消耗为存储节点基于目标数据表获取目标数据,并向计算节点提供目标数据产生的消耗,第二消耗为存储节点向计算节点提供目标数据表,由计算节点基于目标数据表获取目标数据产生的消耗。
14、可选的,计算节点向存储节点提供指示信息,包括:计算节点向存储节点发送数据获取请求,数据获取请求用于请求存储节点向计算节点提供指示信息指示的目标数据。
15、可选的,目标数据包括:目标数据表的指定数据单元中记载的数据,数据单元为数据行或数据列。
16、可选的,目标数据包括:目标数据表的指定数据单元中记载的部分数据。
17、可选的,部分数据为指定数据单元中记载的数据的前缀数据、中间数据、后缀数据或指定长度的数据。
18、可选的,指定数据单元中记载的数据的类型为字符串和/或大对象类字段。
19、第三方面,本申请提供了一种存储节点。存储节点存储有数据表,数据表记载有多行和多列数据。该存储节点包括:处理模块,用于确定创建索引所需的目标数据的指示信息,目标数据为目标数据表中的部分数据;处理模块还用于基于指示信息,从目标数据表中获取目标数据;交互模块,用于向计算节点提供目标数据。
20、可选的,交互模块还用于接收计算节点提供的指示信息。
21、可选的,交互模块具体用于接收计算节点发送的数据获取请求,数据获取请求用于请求存储节点向计算节点提供指示信息指示的目标数据。
22、可选的,目标数据包括:目标数据表的指定数据单元中记载的数据,数据单元为数据行或数据列。
23、可选的,目标数据包括:目标数据表的指定数据单元中记载的部分数据。
24、可选的,部分数据为指定数据单元中记载的数据的前缀数据、中间数据、后缀数据或指定长度的数据。
25、可选的,指定数据单元中记载的数据的类型为字符串和/或大对象类字段。
26、第四方面,本申请提供了一种计算节点。计算节点包括:交互模块,用于接收存储节点发送的目标数据;处理模块,用于基于目标数据创建索引。该目标数据为存储节点中存储的目标数据表中的部分数据,目标数据表记载有多行和多列数据。
27、可选的,交互模块本文档来自技高网...
【技术保护点】
1.一种数据库系统,其特征在于,所述数据库系统包括:计算节点和存储节点,所述存储节点存储有数据表,所述数据表记载有多行和多列数据;
2.如权利要求1所述的系统,其特征在于,
3.如权利要求2所述的系统,其特征在于,
4.如权利要求2或3所述的系统,其特征在于,
5.如权利要求1至4任一所述的系统,其特征在于,所述目标数据包括:所述目标数据表的指定数据单元中记载的数据,所述数据单元为数据行或数据列。
6.如权利要求5所述的系统,其特征在于,所述目标数据包括:所述目标数据表的指定数据单元中记载的部分数据。
7.如权利要求6所述的系统,其特征在于,所述部分数据为所述指定数据单元中记载的数据的前缀数据、中间数据、后缀数据或指定长度的数据。
8.如权利要求6或7所述的系统,其特征在于,所述指定数据单元中记载的数据的类型为字符串和/或大对象类字段。
9.一种创建索引的方法,其特征在于,该方法应用于数据库系统,所述数据库系统包括:计算节点和存储节点,所述存储节点存储有数据表,所述数据表记载有多行和多
10.如权利要求9所述的方法,其特征在于,在所述存储节点确定创建索引所需的目标数据的指示信息之前,所述方法还包括:
11.如权利要求10所述的方法,其特征在于,所述计算节点向所述存储节点提供所述指示信息,包括:
12.如权利要求10或11所述的方法,其特征在于,所述计算节点向所述存储节点提供所述指示信息,包括:
13.如权利要求9至12任一所述的方法,其特征在于,所述目标数据包括:所述目标数据表的指定数据单元中记载的数据,所述数据单元为数据行或数据列。
14.如权利要求13所述的方法,其特征在于,所述目标数据包括:所述目标数据表的指定数据单元中记载的部分数据。
15.如权利要求14所述的方法,其特征在于,所述部分数据为所述指定数据单元中记载的数据的前缀数据、中间数据、后缀数据或指定长度的数据。
16.如权利要求14或15所述的方法,其特征在于,所述指定数据单元中记载的数据的类型为字符串和/或大对象类字段。
17.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器,所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求9至16任一项所述的方法。
18.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求9至16任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求9至16任一项所述的方法。
...【技术特征摘要】
1.一种数据库系统,其特征在于,所述数据库系统包括:计算节点和存储节点,所述存储节点存储有数据表,所述数据表记载有多行和多列数据;
2.如权利要求1所述的系统,其特征在于,
3.如权利要求2所述的系统,其特征在于,
4.如权利要求2或3所述的系统,其特征在于,
5.如权利要求1至4任一所述的系统,其特征在于,所述目标数据包括:所述目标数据表的指定数据单元中记载的数据,所述数据单元为数据行或数据列。
6.如权利要求5所述的系统,其特征在于,所述目标数据包括:所述目标数据表的指定数据单元中记载的部分数据。
7.如权利要求6所述的系统,其特征在于,所述部分数据为所述指定数据单元中记载的数据的前缀数据、中间数据、后缀数据或指定长度的数据。
8.如权利要求6或7所述的系统,其特征在于,所述指定数据单元中记载的数据的类型为字符串和/或大对象类字段。
9.一种创建索引的方法,其特征在于,该方法应用于数据库系统,所述数据库系统包括:计算节点和存储节点,所述存储节点存储有数据表,所述数据表记载有多行和多列数据,所述方法包括:
10.如权利要求9所述的方法,其特征在于,在所述存储节点确定创建索引所需的目标数据的指示信息之前,所述方法还包括:
11.如权利要求10所述的方法,其特征在于,所述计算节点向所述存储节点提供所述指示信息,...
【专利技术属性】
技术研发人员:苏斌,冯小康,祝青平,
申请(专利权)人:华为云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。