[发明专利]一种索引创建方法、装置及数据库系统有效
申请号: | 201710862401.1 | 申请日: | 2017-09-21 |
公开(公告)号: | CN110019971B | 公开(公告)日: | 2023-05-26 |
发明(设计)人: | 周正中 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 孙敬霞;栗若木 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 索引 创建 方法 装置 数据库 系统 | ||
一种索引创建方法、装置及数据库系统,包括:接收为数据表创建索引的请求;基于所述请求,调整所述数据表的数据存储顺序;基于所述调整后的数据存储顺序,响应所述请求创建索引。本申请至少能够大幅降低索引的数据离散度,有效避免IO放大和离散IO的情况,从而能够在按索引搜索数据或对数据排序时提高数据搜索的效率,减少开销。
技术领域
本发明涉及数据库技术领域,尤其涉及一种索引创建方法、装置及数据库系统。
背景技术
通常数据库的数据是堆存储,也就是说数据库中数据的存储是无序的。当需要搜索某个字段的值符合某个条件的数据时,没有索引的话,需要扫描所有数据块。基于此,相关技术中,针对数据库中表数据的列创建索引,通过索引的指针指向相应列记录,从而可以通过索引扫描加速字段值的搜索过程。
虽然创建了索引,但数据库中数据还是无序分布的。此情况下,如果需要查询符合某个条件的数据、或按某个字段对数据进行排序,则需要根据索引扫描数据,索引扫描时就需要扫描到很多数据块,而这些数据块中很可能存在不相关的数据,存在IO放大和离散IO的情况,由此会造成数据库的数据处理效率低、开销大等问题。
发明内容
本申请旨在至少解决相关技术中的技术问题之一。
本申请提供一种索引创建方法、装置及数据库系统,至少能够降低数据离散度。
本申请采用如下技术方案:
一种索引创建方法,包括:
接收为数据表创建索引的请求;
基于所述请求,调整所述数据表的数据存储顺序;
基于所述调整后的数据存储顺序,响应所述请求创建索引。
其中,所述基于所述请求,调整所述数据表的数据存储顺序,包括:
如果所述请求中携带所述索引有数据整理需求的指示信息,或者默认配置为所有索引均有数据整理需求,则调整所述数据表的数据存储顺序。
其中,所述方法还包括:如果所述请求中携带所述索引有数据整理需求的指示信息,将所述索引记录为有数据整理需求的索引。
其中,所述方法还包括:如果所述请求中携带所述第一索引无数据整理需求的指示信息,则不对所述数据表数据的存储顺序进行调整,直接响应所述请求创建索引。
其中,所述调整所述数据表的数据存储顺序,包括:如果所述数据表的已有索引中不存在有数据整理需求的索引,则按照当前索引的顺序调整所述数据表数据的存储顺序;如果所述数据表的已有索引中存在有数据整理需求的索引,则按照当前索引和所述已有索引中有数据整理需求的索引的多列顺序,调整所述数据表数据的存储顺序。
一种数据库系统,包括请求接收模块、索引创建模块和数据调整模块,其中:
请求接收模块,用于接收为数据表创建索引的请求;
数据调整模块,用于基于所述请求,调整所述数据表的数据存储顺序;
索引创建模块,用于基于所述调整后的数据存储顺序,响应所述请求创建索引。
其中,所述数据调整模块,用于基于所述请求,调整所述数据表的数据存储顺序,包括:如果所述请求中携带所述索引有数据整理需求的指示信息,或者默认配置为所有索引均有数据整理需求,则调整所述数据表的数据存储顺序。
其中,所述索引创建模块,还用于在所述请求中携带所述索引有数据整理需求的指示信息时,将所述索引记录为有数据整理需求的索引。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710862401.1/2.html,转载请声明来源钻瓜专利网。