The invention provides a method for realizing the database table index, the database table includes at least one abstract used to create the index columns, each column corresponds to the column in a database table, the method comprises: obtaining a database table column and column of the relationship; when a new record in the database table, the record included in the corresponding abstract and reference column holds the reference value of the column value; when the database table to column and column values for the reference conditions, conditions in the column to replace the corresponding summary column, will refer to conditions in the column value is replaced by the column value of the abstract value, to carry out the operation. Through the technical scheme of the application, even if the column length exceeds the maximum length of the index, it is possible to establish the index to accelerate the speed of operation and data integrity, not due to loss of business data column length limit, in the establishment of the index as the only index also can avoid the database table in duplicate records.
【技术实现步骤摘要】
数据库表索引的实现方法和装置
本申请涉及数据处理
,尤其涉及一种数据库表索引的实现方法和装置。
技术介绍
随着技术的发展,各种网络应用日渐深入人们的生活。这些应用的业务系统需要使用和管理日益增加的各种业务数据,来完成其业务过程。业务数据通常以表的结构存放在数据库中,为了加快对表中数据的访问速度,可以在数据库表中建立索引。索引是对数据库表中一列或多列的值进行排序的一种结构,采用索引查找表中的记录(行)能够基于特定的算法来进行,而不必进行全表扫描,有助于更快的获取信息。唯一性索引还可以用来确保索引列不包含重复的值,例如多列唯一性索引可以确保索引列中每个值组合都是唯一的。一些中小型的数据库对索引的长度做出了限制,例如,MySQL(一种关系型数据库管理系统)数据库中,采用MyISAM存储引擎的表的最大索引长度是1000字节,采用InnoDB存储引擎的表的最大索引长度是3072字节。而很多业务系统的数据库表中包括长度超过最大索引长度的列,例如用来保存KV(Key-Value,键-值)结构或JSON(JavaScriptObjectNotation,JavaScript对象表示法)序列化字符串的列。现有技术中,对具有索引长度限制的数据库表,只能对长度不超过最大索引长度的列建立索引。当用来建立索引的列可能超过最大索引长度时,只能对该列的值进行限制,这样会造成业务信息的损失,在一些情况下甚至难以满足业务上的要求;如果不损失业务信息,就只能接受查询速度下降,业务响应迟滞的结果;对需要以超过最大索引长度的列来建立唯一性索引的应用场景,无法建立索引造成多条相同的记录保存在 ...
【技术保护点】
一种数据库表索引的实现方法,其特征在于,所述数据库表包括至少一个用来建立索引的摘要列,每个摘要列对应于一个所述数据库表中的引用列,所述方法包括:获取所述数据库表中摘要列和引用列的对应关系;当在所述数据库表中新增记录时,在所述记录中与引用列对应的摘要列保存所述引用列值的摘要值;当对所述数据库表的操作以引用列及其列值为条件时,将条件中的引用列替换为对应的摘要列,将条件中的引用列值替换为所述引用列值的摘要值后,进行所述操作。
【技术特征摘要】
1.一种数据库表索引的实现方法,其特征在于,所述数据库表包括至少一个用来建立索引的摘要列,每个摘要列对应于一个所述数据库表中的引用列,所述方法包括:获取所述数据库表中摘要列和引用列的对应关系;当在所述数据库表中新增记录时,在所述记录中与引用列对应的摘要列保存所述引用列值的摘要值;当对所述数据库表的操作以引用列及其列值为条件时,将条件中的引用列替换为对应的摘要列,将条件中的引用列值替换为所述引用列值的摘要值后,进行所述操作。2.根据权利要求1所述的方法,其特征在于,所述获取数据库表中摘要列和引用列的对应关系,包括:按照预定的摘要列发现规则,在所述数据库表的元数据中发现摘要列与引用列的对应关系。3.根据权利要求2所述的方法,其特征在于,所述摘要列发现规则包括:摘要列的列名中包括预定摘要列标志和所对应的引用列列名,并被数据库表的索引引用;摘要列的注释中包括预定摘要列标志和所对应的引用列列名,并被数据库表的索引引用;或,引用列的注释中包括预定引用列标志和所对应的摘要列列名,并被数据库表的索引引用。4.根据权利要求1所述的方法,其特征在于,所述获取数据库表中摘要列和引用列的对应关系,包括:读取预定的配置文件,所述配置文件中保存有所述数据库表中摘要列和引用列的对应关系。5.根据权利要求1所述的方法,其特征在于,所述当在数据库表中新增记录时,在所述记录中与引用列对应的摘要列保存所述引用列值的摘要值,包括:修改插入记录指令,在插入记录指令中增加摘要列并以所述摘要列对应的引用列值的摘要值作为其摘要列值,执行修改后的插入记录指令;或,执行插入记录指令在数据库表中插入新增记录,生成并执行对所述新增记录的更新指令,将所述新增记录的摘要列值更新为与所述摘要列对应的引用列值的摘要值。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:当修改所述数据库表中记录的引用列值时,将所述记录中与所述引用列对应的摘要列值更新为修改后引用列值的摘要值。7.根据权利要求6所述的方法,其特征在于,当修改所述数据库表中记录的引用列值时,将所述记录中与所述引用列对应的摘要列值更新为修改后引用列值的摘要值,包括:修改对所述记录的更新指令,在更新指令中增加与要修改列值的引用列对应的摘要列,并以修改后引用列值的摘要值作为其摘要列值,执行修改后的更新指令;或,执行对所述记录的更新指令,对所述记录的引用列值进行修改,生成并执行对所述记录的更新指令,将所述记录中与被修改列值的引用列对应的摘要列值更新为修改后引用列值的摘要值。8.根据权利要求1所述的方法,其特征在于,所述对数据库表的操作以引用列及其列值为条件,包括:对所述数据库表的查询指令、删除指令或更新指令的条件中包括引用列及其列值。9.根据权利要求1所述的方法,其特征在于,所述摘要值采用循环冗余检验CRC、消息摘要法MD...
【专利技术属性】
技术研发人员:李伟,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。