[发明专利]一种数据库索引的自动创建方法及系统有效
申请号: | 201210457130.9 | 申请日: | 2012-11-14 |
公开(公告)号: | CN103810212B | 公开(公告)日: | 2017-05-24 |
发明(设计)人: | 王明 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京安信方达知识产权代理有限公司11262 | 代理人: | 栗若木 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 索引 自动 创建 方法 系统 | ||
技术领域
本申请涉及数据库技术,更具体地,涉及数据库索引的创建方法及相应的系统。
背景技术
索引就像是字典中的目录索引一样,帮助用户更快的找到相应的信息。线上运行的数据库的表的数据量很大,建立高效的索引来增加查询和修改的速度是必要的,数据库大表操作反应慢的话还会影响前端的业务。如果对于业务上的需求进行表的操作时没有合适的索引会造成查询和修改的效率低下,严重影响业务。
当新功能上线或者现有功能的逻辑修改时,数据库维护人员要审核即将上线使用的数据库操作语句,例如SQL(结构化查询语言,Structured QueryLanguage)语句,对于每一条语句要分析其业务逻辑和现有的数据情况来为其建立合适的索引。索引的建立一般依靠数据库维护人员对要审核的语句及对业务的理解和经验来实现,这不仅效率低下,而且也难以保存建立的索引的有效性。
发明内容
本申请要解决的技术问题是提供一种数据库索引的自动创建方法及系统。
为了解决上述问题,本申请提供了一种数据库索引的自动创建方法,包括:
获取待审核的数据库操作语句对应的数据源,根据所述数据源实例化数据库的连接,所述数据源中保存有包含样本数据的数据库信息;
对每一待审核的数据库操作语句进行索引创建的处理,如下:
确定该数据库操作语句使用的数据库表及各数据库表中该数据库操作语句使用到的索引相关字段;
从所述数据源获取所述数据库表已有索引的字段组合;及
对每一所述数据库表,在该数据库表中的索引相关字段组成的集合不是该数据库表任一已有索引的字段组合的子集或超集,且尚未创建相应数据库索引时,基于该数据库表中的索引相关字段创建数据库索引。
较佳地,
所述基于该数据库表中的索引相关字段创建数据库索引,包括:
先将该数据库表中的所述索引相关字段排列成字段组合,然后基于该数据库表的该字段组合创建数据库索引;
其中,将该数据库表中的所述索引相关字段排列成字段组合又包括:
所述索引相关字段只有一个时,直接将该索引相关字段作为该字段组合;
所述相关索引字段有多个时,先根据所述数据源中该数据库表的样本数据在每一索引相关字段上的唯一值数,分别确定各索引相关字段的权值,唯一值数越大,权值越大;然后根据所述各索引相关字段的所述权值或其修正值从大到小的顺序将所述索引相关字段排列成字段组合;
较佳地,
根据所述各索引相关字段的所述权值的修正值从大到小的顺序将所述索引相关字段排列成字段组合,其中所述权值的修正值按以下方式得到:
对作为左值的每一索引相关字段,如运算符号是等号,对其权值乘以系数k1,否则对其权值乘以系数k2,得到其权值的修正值,k1>k2;和/或
对通过动态标签拼接得到的每一索引相关字段,对其权值乘以系数a,得到其权值的修正值,0<a<1。
较佳地,
所述数据源中该数据库表的样本数据在该数据库表对应于所述数据源中的多个数据库分表时,指所述多个数据库分表中一个分表的样本数据。
较佳地,
在该数据库表中的索引相关字段组成的集合是该数据库表已有索引的字段组合的子集或超集,且尚未创建相应数据库索引时,将该数据库表中的所述索引相关字段排列成字段组合,如满足以下条件中的至少一个,不创建数据库索引,否则,基于该字段组合创建数据库索引:
该数据库表的该字段组合与该数据表至少一已有索引的字段组合相同;
该数据库表的该字段组合与该数据表至少一已有索引的字段组合中在前的部分组合相同;及
该数据库表的该字段组合中包含该数据库表已有的主键索引或至少一唯一性索引的字段组合。
较佳地,
所述索引相关字段指条件字段和/或排序字段。
较佳地,
所述待审核的数据库操作语句是执行选择操作、更新操作或删除操作的数据库操作语句。
较佳地,
对新创建索引逐一评估,如对应数据库表中已有索引的字段组合是该新创建索引的字段组合中前面的部分组合,通过对应的数据源查看该新创建数据库索引和该已有索引的势值的比值是否小于设定阈值,如果小于,删除该新创建数据库索引,否则保留该新创建数据库索引。
相应地,本申请还提供了一种数据库索引的自动创建系统,包括数据源和索引创建装置,其中:
所述数据源保存有包含样本数据的数据库信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210457130.9/2.html,转载请声明来源钻瓜专利网。