数据库索引创建方法及装置制造方法及图纸

技术编号:15938766 阅读:34 留言:0更新日期:2017-08-04 21:41
本申请公开了一种数据库索引创建方法及装置,其中该方法包括按如下方式对数据库的每一结构化查询语言SQL语句创建数据库索引:确定一SQL语句中每一查询条件字段的字段信息;根据所述每一查询条件字段的字段信息,计算所述每一查询条件字段的权重;根据所述每一查询条件字段的权重,为该SQL语句创建数据库索引。本申请可以在自动进行数据库索引创建过程中避免业务场景及数据库中无有效数据分布对数据库索引创建的影响。

Method and device for creating database index

The invention discloses a database index creation method and device, wherein the method comprises as follows for each database structured query language SQL statement to create a database index: a SQL statement to determine the field information of each query field; according to the conditions of each query field in the field of information, the weight calculation each query field; according to the conditions of each query field weights, create a database index for the SQL statement. This application can avoid the impact of the absence of valid data distribution in the business scenarios and databases on database index creation during the creation of the database index automatically.

【技术实现步骤摘要】
数据库索引创建方法及装置
本申请涉及数据库
,尤其涉及数据库索引创建方法及装置。
技术介绍
数据库(Database)按照数据结构来组织、存储和管理数据。数据库索引对数据库表中一列或多列的值进行排序并建立目录,使用数据库索引可以快速访问数据库表中的特定信息。数据库索引的创建和维护是DBA(DatabaseAdministrator,数据库管理员)日常业务中不可取代的工作。DBA的主要日常工作之一是SQL(StructuredQueryLanguage,结构化查询语言)调优,SQL调优的重要手段之一是给查询慢的SQL建立合适的数据库索引。数据库索引的建立需要对业务场景有一定了解,并需要一定的数据库经验,对业务场景的了解程度和数据库经验的丰富程度对线上应用的性能影响非常巨大。随着业务场景规模的不断扩大,DBA不可能了解所有业务,这样数据库索引的建立就会脱离实际业务需求,造成数据库索引创建的效率不高,随时会影响线上业务应用的正常运转。同时,数据库索引的建立和维护工作也占用了DBA大量时间。现有技术中提出一种基于有效数据分布的数据库索引自动创建的方案,然而在该方案中数据库索引的建立需要基于数据库中的有效数据分布,并且要求尽量真实模拟线上数据分布,那么在新数据库或者新业务上线的时候,由于没有任务业务数据写入,缺少数据库的有效数据分布,这种基于有效数据分布的数据库索引建立方案就有些缺陷了,二者的矛盾是数据库索引需要业务上线前建立好,而数据库索引的建立又依赖业务中的有效数据分布。
技术实现思路
本申请实施例提供一种数据库索引创建方法,在自动进行数据库索引创建过程中避免业务场景及数据库中无有效数据分布对数据库索引创建的影响,该方法包括按如下方式对数据库的每一结构化查询语言SQL语句创建数据库索引:确定一SQL语句中每一查询条件字段的字段信息;根据所述每一查询条件字段的字段信息,计算所述每一查询条件字段的权重;根据所述每一查询条件字段的权重,对该SQL语句中查询条件字段进行排序;根据排序后的查询条件字段为该SQL语句创建数据库索引。本申请实施例还提供一种数据库索引创建装置,用以在自动进行数据库索引创建过程中避免业务场景及数据库中无有效数据分布对数据库索引创建的影响,该装置包括:字段信息确定模块,用于在对数据库的每一SQL语句创建数据库索引时,确定一SQL语句中每一查询条件字段的字段信息;权重计算模块,用于根据所述每一查询条件字段的字段信息,计算所述每一查询条件字段的权重;字段排序模块,用于根据所述每一查询条件字段的权重,对该SQL语句中查询条件字段进行排序;索引创建模块,用于根据排序后的查询条件字段为该SQL语句创建数据库索引。本申请实施例提供一种数据库索引创建方法,在自动进行数据库索引创建过程中避免业务场景及数据库中无有效数据分布对数据库索引创建的影响,该方法包括按如下方式对数据库的每一结构化查询语言SQL语句创建数据库索引:确定一SQL语句中每一查询条件字段的字段信息;根据所述每一查询条件字段的字段信息,计算所述每一查询条件字段的权重;根据所述每一查询条件字段的权重,为该SQL语句创建数据库索引。本申请实施例还提供一种数据库索引创建装置,用以在自动进行数据库索引创建过程中避免业务场景及数据库中无有效数据分布对数据库索引创建的影响,该装置包括:字段信息确定模块,用于在对数据库的每一SQL语句创建数据库索引时,确定一SQL语句中每一查询条件字段的字段信息;权重计算模块,用于根据所述每一查询条件字段的字段信息,计算所述每一查询条件字段的权重;索引创建模块,用于根据所述每一查询条件字段的权重,为该SQL语句创建数据库索引。一个实施例中,所述字段信息确定模块包括:解析单元,用于对该SQL语句进行解析,获得该SQL语句对应的数据库表信息、该SQL语句中查询条件字段、以及该SQL语句的数据库连接;查询单元,用于根据所述数据库连接链接到对应的数据库,在所述数据库中根据所述数据库表信息查找该SQL语句对应的数据库表,在所述数据库表中查找该SQL语句中查询条件字段的字段信息。一个实施例中,所述查询单元还用于:在查找到所述数据库表之后,获取所述数据库表的已有索引信息;所述装置进一步包括:数据判定模块,用于在该SQL语句中查询条件字段未能匹配已有索引信息时,确定所述数据库表中是否有有效数据;数据处理模块,用于在所述数据库表中有有效数据时,基于所述数据库表中的有效数据分布为该SQL语句创建数据库索引;创建触发模块,用于在所述数据库表中没有有效数据时,触发所述权重计算模块及索引创建模块执行相应功能。一个实施例中,所述查询单元还用于:在查找到所述数据库表之后,获取所述数据库表的大小;所述数据判定模块具体用于在该SQL语句中查询条件字段未能匹配已有索引信息,且所述数据库表的大小符合预设条件时,确定所述数据库表中是否有有效数据。一个实施例中,所述字段信息确定模块具体用于确定所述每一查询条件字段的字段类型、字段长度和字段名称;所述权重计算模块具体用于:根据所述每一查询条件字段的字段类型、字段长度和字段名称,计算所述每一查询条件字段的权重。一个实施例中,所述权重计算模块具体用于按如下公式计算查询条件字段的权重:weight=(columnTypeweight+columnLengthWeight)×columnNameWeight;其中,weight为查询条件字段的权重,columnTypeweight为查询条件字段的字段类型的权重,columnLengthWeight为查询条件字段的字段长度的权重,columnNameWeight为查询条件字段的字段名称的权重。一个实施例中,所述索引创建模块具体用于:根据所述每一查询条件字段的权重,对该SQL语句中查询条件字段进行排序;根据排序后的查询条件字段为该SQL语句创建数据库索引。本申请实施例中,在对数据库的每一SQL语句创建数据库索引时,确定一SQL语句中每一查询条件字段的字段信息;根据所述每一查询条件字段的字段信息,计算所述每一查询条件字段的权重;根据所述每一查询条件字段的权重,为该SQL语句创建数据库索引;从而实现数据库索引的自动创建,创建过程中不需要考虑业务场景,不依赖DBA的数据库经验,也不需要基于数据库中有效数据分布,避免了业务场景及数据库中无有效数据分布对数据库索引创建的影响,提高了数据库索引创建的效率,尤其适用于新业务的上线运行。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1为本申请实施例中数据库索引创建方法的原理示意图;图2为本申请实施例中数据库索引创建方法的处理流程图;图3为本申请实施例中数据库索引自动创建的一具体实例的示意图;图4为本申请实施例中另一数据库索引创建方法的原理示意图;图5为本申请实施例中数据库索引创建装置的示意图;图6为本申请实施例中图5所示数据库索引创建装置的一具体实例的示意图;图7为本申请实施例中图5所示数据库索引创建装置的另一具体实例本文档来自技高网...
数据库索引创建方法及装置

【技术保护点】
一种数据库索引创建方法,其特征在于,包括按如下方式对数据库的每一结构化查询语言SQL语句创建数据库索引:确定一SQL语句中每一查询条件字段的字段信息;根据所述每一查询条件字段的字段信息,计算所述每一查询条件字段的权重;根据所述每一查询条件字段的权重,为该SQL语句创建数据库索引。

【技术特征摘要】
2015.10.23 CN 20151069543381.一种数据库索引创建方法,其特征在于,包括按如下方式对数据库的每一结构化查询语言SQL语句创建数据库索引:确定一SQL语句中每一查询条件字段的字段信息;根据所述每一查询条件字段的字段信息,计算所述每一查询条件字段的权重;根据所述每一查询条件字段的权重,为该SQL语句创建数据库索引。2.如权利要求1所述的方法,其特征在于,所述确定一SQL语句中每一查询条件字段的字段信息,包括:对该SQL语句进行解析,获得该SQL语句对应的数据库表信息、该SQL语句中查询条件字段、以及该SQL语句的数据库连接;根据所述数据库连接链接到对应的数据库,在所述数据库中根据所述数据库表信息查找该SQL语句对应的数据库表,在所述数据库表中查找该SQL语句中查询条件字段的字段信息。3.如权利要求2所述的方法,其特征在于,在查找到所述数据库表之后,还获取所述数据库表的已有索引信息;在该SQL语句中查询条件字段未能匹配已有索引信息时,进一步确定所述数据库表中是否有有效数据;若有,则基于所述数据库表中的有效数据分布为该SQL语句创建数据库索引;若无,则仍旧根据所述每一查询条件字段的权重为该SQL语句创建数据库索引。4.如权利要求3所述的方法,其特征在于,在查找到所述数据库表之后,还获取所述数据库表的大小;所述在该SQL语句中查询条件字段未能匹配已有索引信息时,进一步确定所述数据库表中是否有有效数据,包括:在该SQL语句中查询条件字段未能匹配已有索引信息,且所述数据库表的大小符合...

【专利技术属性】
技术研发人员:王明叶正盛
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1