CN105701098A - 针对数据库中的表生成索引的方法和装置 - Google Patents
针对数据库中的表生成索引的方法和装置 Download PDFInfo
- Publication number
- CN105701098A CN105701098A CN201410690310.0A CN201410690310A CN105701098A CN 105701098 A CN105701098 A CN 105701098A CN 201410690310 A CN201410690310 A CN 201410690310A CN 105701098 A CN105701098 A CN 105701098A
- Authority
- CN
- China
- Prior art keywords
- index
- statement
- identifier
- results list
- querying condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了针对数据库中的表生成索引的方法和装置。提供了一种用于针对数据库中的表生成索引的方法,包括:响应于接收到针对表进行查询的查询语句,在表中搜索满足查询语句中的查询条件的一个或者多个行;基于一个或者多个行的标识符建立结果列表;以及生成用于查询语句的索引,索引包括与查询条件和结果列表相关联的信息。还提供了一种用于基于索引来在数据库中的表中进行操作的方法,包括:从索引中解析查询条件和结果列表;响应于接收到针对表进行操作的第二语句,确定查询条件匹配于第二语句中的第二条件中的至少一部分;及基于表中的由结果列表中的标识符指示的一个或者多个行,执行第二语句。
Description
技术领域
本发明的各实施方式涉及数据库管理(databasemanagement),更具体地,涉及针对数据库中的表生成索引(index)的方法和装置。
背景技术
随着数据存储技术的发展,数据库系统在存储容量方面有了显著提高,目前在数据库的一个表中已经可以存储数十万行甚至更多行的记录。通常而言,针对数据库中的表进行查询的效率在很大程度上取决于针对该表进行扫描所占用的时间。在数据表的大小飞速增长的同时,如何提高数据库对于数据查询语句以及其他数据处理语句的响应效率成为一个研究热点。
索引有助于提高数据查询语句的效率,并且目前已经提出了在数据库中建立索引的技术方案。然而应当注意,一方面索引可以提高数据查询的效率,另一方面,过多的索引将大大降低针对该数据表进行其他操作(例如,增、删等修改操作)的效率。因而,在数据库管理中需要控制索引的数量,以防止出现修改效率过低的情况。
因而,如何提高数据库系统中的查询效率以及其他数据处理操作的效率,成为一个亟待解决的问题。
发明内容
因而,期望可以开发出一种能够有效地管理数据库系统的技术方案,期望该技术方案可以提高数据库系统的响应效率;进一步,期望该技术方案可以与现有的数据库系统相兼容,以便在尽量不改变现有数据库系统中的资源配置的情况下,提高数据库的查询语句以及其他数据处理语句的响应效率。
在本发明的一个实施方式中,提供了一种用于针对数据库中的表生成索引的方法,包括:响应于接收到针对表进行查询的查询语句,在表中搜索满足查询语句中的查询条件的一个或者多个行;基于一个或者多个行的标识符建立结果列表;以及生成用于查询语句的索引,该索引包括与查询条件和结果列表相关联的信息。
在本发明的一个实施方式中,提供了一种用于基于索引来在数据库中的表中进行操作的方法,包括:从索引中解析查询条件和结果列表;响应于接收到针对表进行操作的第二语句,确定查询条件匹配于第二语句中的第二条件中的至少一部分;及基于表中的由结果列表中的标识符指示的一个或者多个行,执行第二语句。
在本发明的一个实施方式中,提供了一种用于针对数据库中的表生成索引的装置,包括:搜索模块,配置用于响应于接收到针对表进行查询的查询语句,在表中搜索满足查询语句中的查询条件的一个或者多个行;建立模块,配置用于基于一个或者多个行的标识符建立结果列表;以及生成模块,配置用于生成用于查询语句的索引,该索引包括与查询条件和结果列表相关联的信息。
在本发明的一个实施方式中,提供了一种用于基于索引来在数据库中的表中进行操作的装置,包括:解析模块,配置用于从索引中解析查询条件和结果列表;确定模块,配置用于响应于接收到针对表进行操作的第二语句,确定查询条件匹配于第二语句中的第二条件中的至少一部分;以及执行模块,配置用于基于表中的由结果列表中的标识符指示的一个或者多个行,执行第二语句。
采用本发明所述的方法和装置,可以为所指定的查询语句创建“私有”索引,该索引可以包括与查询语句中的查询条件和查询结果相关联的信息。进一步,在后续发现其他数据处理语句中的条件与查询语句中的查询条件相同或者相似时,可以在不必针对数据表执行全面表扫描的情况下,直接使用索引中的查询结果来简化该其他数据处理语句的执行步骤,进而提高数据库系统的响应效率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示意性示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2示意性示出了根据一个技术方案的数据归档(dataarchiving)操作的框图;
图3示意性示出了根据本发明一个实施方式的用于针对数据库中的表生成索引的技术方案的示意图;
图4示意性示出了根据本发明一个实施方式的用于针对数据库中的表生成索引的方法的流程图;
图5A-图5C分别示意性示出了根据本发明的实施方式的索引的数据结构的框图;
图6示意性示出了根据本发明一个实施方式的用于基于索引来在数据库中的表中进行操作的方法的流程图;
图7示意性示出了根据本发明一个实施方式的执行第二语句的方法的流程图;以及
图8A示意性示出了根据本发明一个实施方式的用于针对数据库中的表生成索引的装置的框图,以及图8B示意性示出了根据本发明一个实施方式的用于基于索引来在数据库中的表中进行操作的装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施方式的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其他可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施方式的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施方式中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其他模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在针对数据库进行操作期间,可以涉及到针对数据库执行的多种类型的处理操作,例如,可以使用查询语句从数据库的表中查询满足某些查询条件的行(line)(例如,在记录工厂的生产状态的表中查询2013年中每个月的产量),或者还可以在上述表中进一步查询2013年中特定月份(例如8月)的产量,等等。由于数据表中可能包括数十万行甚至更多的记录,针对数据表进行全面扫描以获得查询结果需要耗费大量时间,这大大影响了数据库的响应速度。
另外,还可以使用删除语句从数据库的表中删除满足某些条件的行(例如,可以从上述表中删除有关2013年的产量的全部记录)。此时删除记录的操作实际上包括两个步骤:首先需要通过表扫描来获得满足条件的行,继而再从数据表中删除这些行。应当注意,采用现有的技术方案,针对数据表中的大量操作都会直接或者间接地涉及表扫描,因而现有技术方案时数据库系统的响应时间并不令人满意。
在针对数据表中的数据进行归档时,现有技术方案的缺陷尤其突出。数据归档是指将不经常使用的数据移到一个单独的存储空间(例如,另一个数据表)中进行存储的过程。图2示意性示出了根据一个技术方案的数据归档操作的框图200。如图2所示,例如表210示出了用于存储工厂每个月的产量的数据表T1,该数据表T1包括多个列:列“ID”用于存储每行记录的标识符,列“Year”和列“Month”分别用于存储年份和月份,列“Production”用于存储在指定年月的产量,等等。
随着时间的流逝,数据表T1中的记录将变得越来越多,这将导致针对数据表T1的操作的响应时间变慢,因而数据库管理员通常会将较早年份(例如,2013年)的数据从数据表T1中移至其他数据表中存储,可以将该操作称为数据归档。如图2所示,可以使用示出的SQL语句“INSERTINTOT2(SELECT*FROMT1WHEREYEAR=‘2013’)”来进行数据归档。该SQL语句表示:首先确定数据表T1中的哪些数据涉及2013年,继而在将查询所得的记录复制到另一数据表(例如,以参考数字230示出的表T2)。通过执行上述语句,可以将2013年的数据归档到数据表T2中,因而可以使用SQL“DELETEFROMT1WHEREYEAR=‘2013’”,来从T1中删除已经被归档的数据。
本领域技术人员应当理解,在上述数据归档过程中,两个SQL语句分别针对表T1执行表扫描,分别由两个SQL语句触发的两次表扫描将占用大量时间并影响数据归档的效率。应当注意,尽管在本发明的上下文中以存储每个月份的产量数据的数据表为示例(此时数据表中仅包括数十行的记录),在具体应用环境中,例如在记录电网每秒的状态的数据表中可以包括数十万甚至数百万行的记录。此时,针对该数据表进行数据归档时的延迟将更为显著。
在数据库系统运行期间,除了数据归档操作期间可能会涉及到上文所述的“重复表扫描”的情况以外,例如下文所示的查询-删除操作也会导致“重复表扫描”。查询语句SQL1和删除语句SQL2示出如下:
SQL1:SELECT*FROMT1WHEREYEAR=‘2013’
SQL2:DELETEFROMT1WHEREYEAR=‘2013’
由于表扫描的时间成为影响数据库响应效率的一个重要指标,因而期望尽量减少执行表扫描的次数。针对现有技术中的上述不足,本发明提出了一种用于针对数据库中的表生成索引的方法。该方法包括:响应于接收到针对表进行查询的查询语句,在表中搜索满足查询语句中的查询条件的一个或者多个行;基于一个或者多个行的标识符建立结果列表;以及生成用于查询语句的索引,该索引包括与查询条件和结果列表相关联的信息。
根据本发明的技术方案,在索引中可以存储查询条件和查询返回的结果列表,因而当在后续的操作中涉及相同或者相似的条件时,可以直接使用索引中的结果列表,而不必重新针对整个数据表执行表扫描。应当注意,在本发明的上下文中,相似的条件是指查询语句中的查询条件匹配于后续操作中的另一条件中的至少一部分,在后文中将参见图6和图7详细描述,在此不再赘述。
现在转向图3,图3示意性示出了根据本发明一个实施方式的用于针对数据库中的表生成索引的技术方案的示意图300。在本发明的实施方式中,在数据归档中同样执行SQL1和SQL2,例如,在图3中的方框310处示出了执行SQL1的查询结果。与现有技术的不同之处在于,在执行SQL1时可以将满足SQL1中的查询条件的记录的行标识符进行存储,例如,可以在结果列表320中存储查询所获得的结果的行标识符(例如,10、11、…、21)。
按照本发明的技术方案,在上文参见图2描述的数据归档操作中,在执行SQL2删除已经归档的数据时,不必再次执行表扫描,而是可以直接删除在执行SQL1时获得的索引中的结果列表内记载的记录即可。以此方式,可以在无需再次执行表扫描的情况下直接删除表T1中的标识符为10、11、…、21的行,从而大大提高数据库的响应速度。
在下文中将参见附图来详细描述本发明的各个实施方式的更多细节。图4示意性示出了根据本发明一个实施方式的用于针对数据库中的表生成索引的方法的流程图400。在步骤S402中,响应于接收到针对表进行查询的查询语句,在表中搜索满足查询语句中的查询条件的一个或者多个行。具体地,针对上文所示的查询语句SQL1:SELECT*FROMT1WHEREYEAR=‘2013’,可以在数据库管理系统中执行该查询语句,以便在数据表T1中找到满足查询条件“YEAR=‘2013’”的多个行(即,标识符为10、11、…、21的行)。
在步骤S404中,基于一个或者多个行的标识符建立结果列表。在此步骤中,可以采用在数组中存储找到的多个行的标识符,例如,可以在数组result_list(10,11,…,21)中存储。其中,数组result_list可以包括12个元素,每个元素分别表示2013年的12个月份的数据所在的行的标识符。在本发明的一个实施方式中,可以将数据表T1的主键的内容作为标识符。
在步骤S406中,生成用于查询语句的索引,索引包括与查询条件和结果列表相关联的信息。在此步骤中,并不限定以何种方式来在索引中存储与查询条件和结果列表相关联的信息。例如,在一个简单的实施方式中,可以直接在索引中存储查询条件“YEAR=‘2013’”、以及数组result_list(10,11,…,21)。备选地,如果查询返回的行的数量很大,还可以将数组result_list(10,11,…,21)进行压缩,或者本领域技术人员可以采用现有技术中已知的或者将在未来开发的各种数据存储技术来设置结果列表的格式。
不同于现有技术中针对数据表中的各个列建立的索引的技术方案,在本发明的各个实施方式中生成的索引是针对查询语句的索引,换言之,通过在索引中存储与查询语句相关联的查询条件和查询结果,在将来再次执行与查询语句中的查询条件相同或者类似的处理语句时,可以在无需再次执行表扫描的情况下经由索引中存储的查询结果来直接访问目标数据。
应当注意,在本发明的实施方式中并不限定针对一个表生成多少个索引,而是针对一个表可以生成多个索引。例如,当数据库管理员利用如下SQL3和SQL4来归档有关2012年的产量的数据时,还可以针对查询语句SQL3来生成相应的索引。
SQL3:SELECT*FROMT1WHEREYEAR=‘2012’
SQL4:DELETEFROMT1WHEREYEAR=‘2012’
继而,在利用SQL4来从数据表T1中删除已经归档的数据时,则可以在无需再次执行表扫描的情况下删除数据。
应当注意,在上述实施方式中仅以数据库中的一个数据表为示例描述了如何生成根据本发明的索引。在本发明的各个实施方式中,并不局限于仅针对一个数据表来生成索引,而是当数据库中包括多个数据表时,还可以基于针对不同的数据表执行的查询语句来生成相应的索引。
在本发明的一个实施方式中,索引还包括与表的标识符相关联的信息。以此方式,可以标识出每个索引是用于哪个表的索引。应当注意,在本发明的实施方式中,可以针对多个查询语句生成相应的索引,并且这些查询语句可以是针对相同或者不同的数据表执行的查询语句。
在本发明的一个实施方式中,生成用于查询语句的索引包括:从查询语句中提取查询条件和表的标识符;以及基于查询条件、表的标识符以及结果列表建立索引。
在此实施方式中,由于已经知晓查询语句的语法结构,因而可以从查询语句中提取查询条件和表的标识符。具体地,对于查询语句SQL1:SELECT*FROMT1WHEREYEAR=‘2013’,通过分析该查询语句的结构可以发现,在关键字“WHERE”之后跟随有查询条件“YEAR=‘2013’”,而在关键字“FROM”之后跟随有表的标识符“T1”。类似地,本领域技术人员还可以基于上述原理来从其他结构更为复杂的查询语句中提取信息。例如对于如下的查询语句:
SQL5:SELECT*FROMT2WHEREYEAR=‘2013’ANDMONTH=‘12’
通过分析可知,SQL5的查询条件为“YEAR=‘2013’ANDMONTH=‘12’”,并且表的标识符为“T2”。在SQL5中,查询条件涉及两个条件,即,“YEAR=‘2013’”并且“MONTH=‘12’”。
在本发明的一个实施方式中,基于查询条件、表的标识符以及结果列表建立索引包括:获取查询条件和表的标识符的哈希值;以及在哈希值与结果列表之间创建关联关系以建立索引。
应当注意,为了不必要地混淆本发明的主题,在上文中举例示出的查询语句都是简单的查询语句。本领域技术人员应当注意,在针对数据库的实际操作中,查询语句可能涉及多个复杂的查询条件。因而在生成索引时,可以根据预定义的哈希函数来获得查询条件和表的标识符的哈希值,并且在哈希值与结果列表之间创建关联关系以建立索引。采用哈希值可以降低索引中查询条件和表的标识符所占用的空间。
应当注意,在本发明的各个实施方式中并不限定以何种格式来存储索引,而是本领域技术人员可以根据具体应用环境的需要来自定义索引的数据结构,只要索引包括与查询条件和结果列表相关联的信息即可。
图5A-图5C示意性示出了根据本发明的实施方式的索引的数据结构的框图500A-500C。具体地,可以在如图5A所示的数据结构中存储索引,此时索引500A可以包括查询条件510A和结果列表520A。对于上文所示的SQL1而言,索引可以表示为:
索引1:(YEAR=‘2013’;result_list(10,11,…,21))
备选地,还可以在如图5B所示的数据结构中存储索引,此时索引500B可以包括查询条件510B、表ID512B以及结果列表520B。对于上文所示的SQL1而言,索引可以表示为:
索引2:(YEAR=‘2013’;T1;result_list(10,11,…,21))
备选地,还可以在如图5C所示的数据结构中存储索引,此时索引500C可以包括查询条件和表ID的哈希值510C以及结果列表520C。对于上文所示的SQL1而言,索引可以表示为:
索引3:(hash(YEAR=‘2013’,T1);result_list(10,11,…,21))
进一步,在上文所示的索引1-索引3中,当结果列表中包括较大数量的行的标识符时,还可以将结果列表进行压缩,以便节省存储空间。
本领域技术人员应当注意,由于索引中仅存储了满足查询条件的行的标识符而并没有存储记录行内的具体数据,因而所生成的索引并不是始终有效。而是,当索引中的结果列表所指示的记录行中的数据被更新时,这些记录行可能会不再满足查询条件,因而此时后续的数据处理语句必须重新执行表扫描。
在本发明的一个实施方式中,进一步包括:响应于表中的一个或者多个行中的任意一行被修改,将索引标识为无效。本领域技术人员可以采用多种方式来将该索引标识为无效,例如,可以在索引中设置表示该索引是否有效的标记(flag)。在初始时将该标记设置为“真(TRUE)”以表示该索引有效,而当由结果列表表示的一个或者多个行中的任意一行被修改时,将该标记设置为“假(FALSE)”以表示索引为无效。以此方式,可以避免在后续操作中使用已经不再准确的索引进而造成数据库中出现错误。
在本发明的一个实施方式中,进一步包括:释放结果列表。由于结果列表可能会占用大量存储空间,因而在已经确定索引为无效时,可以释放结果列表以便获得更多的存储空间。
在本发明的上下文中,生成索引的目的在于在将来执行与查询语句中的查询条件相同或者相似的处理语句时,可以直接从索引中获取满足查询条件的一个或者多个列,而不必针对数据表重新执行表扫描以便提高数据库的响应速度。
基于上述原理,本发明的一个实施方式提出了一种用于基于索引来在数据库中的表中进行操作的方法,包括:从索引中解析查询条件和结果列表;响应于接收到针对表进行操作的第二语句,确定查询条件匹配于第二语句中的第二条件中的至少一部分;以及基于表中的由结果列表中的标识符指示的一个或者多个行,执行第二语句。
在下文中将参见图6来描述该方法的详细步骤。具体地,图6示意性示出了根据本发明一个实施方式的用于基于索引来在数据库中的表中进行操作的方法的流程图600。在步骤S602中,从索引中解析查询条件和结果列表。此解析步骤是参见图4中的步骤S406的生成步骤的逆操作,例如可以采用与生成步骤相反的方法来从索引中解析查询条件和结果列表。
例如,当采用上文中参见图5A所示的数据结构来生成索引时,可以直接从该索引中解析出查询条件和结果列表。例如,可以直接从上文的索引1中获得查询条件YEAR=‘2013’,并且获得结果列表result_list(10,11,…,21)。本领域技术人员可以基于上文的原理,从采用如图5B和图5C所示的数据结构的索引中获得查询条件和结果列表。
在步骤S604中,响应于接收到针对表进行操作的第二语句,确定查询条件匹配于第二语句中的第二条件中的至少一部分。本领域技术人员应当理解,当从索引获得的查询条件与第二语句中的第二条件相同,或者从索引获得的查询条件是第二语句中的第二条件的真子集时,才可以使用从索引获得的结果列表,而在其他情况下并不能直接使用该结果列表。在步骤S604中,通过确定查询条件匹配于第二语句中的第二条件中的至少一部分,可以确保在后续操作中可以使用所生成的索引辅助执行第二语句。
在步骤S606中,基于表中的由结果列表中的标识符指示的一个或者多个行,执行第二语句。在此步骤中,当查询条件匹配于第二语句中的第二条件时,通过结果列表可以直接找到符合第二语句中的第二条件的一个或者多个行。或者,当查询条件匹配于第二语句中的第二条件的一部分时,结果列表中的标识符指示的一个或者多个行是符合第二语句中的第二条件的记录行的超集,从而只需要在该一个或者多个行内进行扫描,即可获得符合第二语句中的第二条件的记录行。以此方式,可以在无需对数据表进行全面表扫描的情况下,快速地获取目标记录行。在此步骤中,索引可以是根据上文参见图4描述的方法生成的索引。
应当注意,在此实施方式中仅示出了索引和第二语句涉及相同数据表的情况,由于索引和第二语句可能涉及不同的数据表,还可以通过比较从索引中解析的表标识符以及在第二语句中的表标识符,来判断索引和第二语句是否涉及相同的数据表。换言之,只有在确定索引和第二语句涉及相同数据表后,才执行参见图6所示的方法。
具体地,在本发明的一个实施方式中,提供了一种用于基于索引来在数据库中的表中进行操作的方法,包括:响应于接收到针对表进行操作的第二语句,从第二语句中提取第二表标识符,以及从索引中解析表标识符;响应于第二表标识符匹配于表标识符,从索引中解析查询条件和结果列表;确定查询条件匹配于第二语句中的第二条件中的至少一部分;以及基于表中的由结果列表中的标识符指示的一个或者多个行,执行第二语句。
图7示意性示出了根据本发明一个实施方式的执行第二语句的方法的流程图700。如图7所示,在步骤S702中,当查询条件=第二条件时,执行步骤S704所示的分支;而当查询条件第二条件时,执行步骤S706-S708所示的分支。
在本发明的一个实施方式中,基于表中的由结果列表中的标识符指示的一个或者多个行,执行第二语句包括:响应于查询条件匹配于第二条件,针对表中的由结果列表中的标识符指示的一个或者多个行,执行第二语句中的操作。
当查询条件匹配于第二条件时,则表示作为索引的基础的查询语句中的查询条件与第二语句中的第二条件相同,此时可以直接针对结果列表中指示的一个或者多个行来执行第二语句中的操作。在下文中将参见具体示例进行描述,例如,数据库管理员可以执行如下文表1所示的一组SQL语句。
表1SQL语句示例
序号 | SQL语句 |
1 | SELECT*FROM T1 WHERE YEAR=‘2013’ |
2 | DELETE FROM T1 WHERE YEAR=‘2013’ |
… | … |
此时,两个语句中的条件是相同的,均为“YEAR=‘2013’”,因而可以在表T1中直接删除由结果列表中的标识符指示的一个或者多个行。在此实施方式中,不必像现有技术那样在整个数据表的范围内进行表扫描。以此方式,可以大大提高数据库的响应速度。
在本发明的一个实施方式中,基于表中的由结果列表中的标识符指示的一个或者多个行,执行第二语句包括:响应于查询条件匹配于第二条件中的一部分,在表中的由结果列表中的标识符指示的一个或者多个行中搜索满足第二条件中的其他部分的至少一个行;以及针对搜索到的至少一个行执行第二语句中的操作。
在此实施方式中,索引中的查询条件是第二语句中的第二条件的一部分(即,子集),此时可以在由结果列表中的标识符指示的一个或者多个行中进行搜索,以便找到符合全部第二条件的记录行。在下文中将参见具体示例进行描述,例如,数据库管理员可以执行如下文表2所示的一组SQL语句。
表2SQL语句示例
在此实施方式中,由结果列表中的标识符指示了满足查询条件“YEAR=‘2013’”的记录行,即,有关于2013年的12个月的12个记录行。由于第二语句的第二条件中进一步包括“MONTH=‘12’”,因而可以在上述12个记录行中查找“MONTH=‘12’”的数据。在此实施方式中,仅需要在12个记录行中进行搜索,而不必像现有技术那样在整个数据表的范围内进行表扫描以搜索同时满足条件“YEAR=‘2013’”和“MONTH=‘12’”的数据行。以此方式,可以大大提高数据库的响应速度。
在本发明的一个实施方式中,还可以手动地生成索引,或者还可以自动地生成索引。例如,可以定义指示手工生成索引的关键字“WITHPRIVATEINDEX”,例如,可以在常规的查询语句后加入上述关键字,以指示手工生成索引;或者,还可以采用其他方法来手工触发执行本发明的生成索引的方法。
具体地,可以在查询语句的末端加入该关键字以指示生成根据本发明的各个实施方式的索引。例如,以下SQL6将在以常规方法执行SELECT语句之后,生成根据本发明的索引。
SQL6:SELECT*FROMT1WHEREYEAR=‘2013’WITHPRIVATEINDEX
备选地,可以响应于确定在先的查询语句中的查询条件匹配于在后的第二语句中的第二条件中的至少一部分,而自动生成根据本发明的各个实施方式的索引。本领域技术人员可以基于本发明的原理而自行设计具体实施方式,在本文中将不再赘述。
在本发明的一个实施方式中,进一步包括:在数据库的一个事务中提交查询语句和第二语句。例如,可以以表3所示的代码来提交查询语句和第二语句。
表3提交语句示例
应当注意,在本发明的上下文中并不限定第二语句的类型,例如,第二语句可以是查询语句、删除语句、以及更新语句中的任一项。
前面已经参考附图描述了实现本发明的方法的各个实施方式。本领域技术人员可以理解的是,上述方法既可以以软件方式实现,也可以以硬件方式实现,或者通过软件与硬件相结合的方式实现。并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相结合的方式实现上述方法中的各个步骤,可以提供一种基于相同发明构思的一种设备。即使该设备在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得该设备表现出区别于通用处理设备的特性,从而形成本发明的各个实施方式的设备。本发明中所述设备包括若干装置或模块,所述装置或模块被配置为执行相应步骤。本领域的所述技术人员通过阅读本说明书可以理解如何编写程序实现所述装置或模块执行的动作。由于所述设备与方法基于相同的发明构思,因此其中相同或相应的实现细节同样适用于与上述方法对应的装置或模块,由于其在上文中已经进行了详细和完整的描述,因此在下文中可能不再进行赘述。
图8A示意性示出了根据本发明一个实施方式的用于针对数据库中的表生成索引的装置的框图800A。具体地,提供了一种用于针对数据库中的表生成索引的装置,包括:搜索模块810A,配置用于响应于接收到针对表进行查询的查询语句,在表中搜索满足查询语句中的查询条件的一个或者多个行;建立模块820A,配置用于基于一个或者多个行的标识符建立结果列表;以及生成模块830A,配置用于生成用于查询语句的索引,索引包括与查询条件和结果列表相关联的信息。
在本发明的一个实施方式中,索引还包括与表的标识符相关联的信息。
在本发明的一个实施方式中,生成模块830A包括:提取模块,配置用于从查询语句中提取查询条件和表的标识符;以及建立模块,配置用于基于查询条件、表的标识符以及结果列表建立索引。
在本发明的一个实施方式中,搜索建立模块包括:获取模块,配置用于获取查询条件和表的标识符的哈希值;以及索引建立模块,配置用于在哈希值与结果列表之间创建关联关系以建立索引。
在本发明的一个实施方式中,进一步包括:标识模块,配置用于响应于表中的一个或者多个行中的任意一行被修改,将索引标识为无效。
在本发明的一个实施方式中,进一步包括:释放模块,配置用于释放结果列表。
图8B示意性示出了根据本发明一个实施方式的用于基于索引来在数据库中的表中进行操作的装置的框图800B。具体地,提供了一种用于基于索引来在数据库中的表中进行操作的装置,包括:解析模块810B,配置用于从索引中解析查询条件和结果列表;确定模块820B,配置用于响应于接收到针对表进行操作的第二语句,确定查询条件匹配于第二语句中的第二条件中的至少一部分;以及执行模块830B,配置用于基于表中的由结果列表中的标识符指示的一个或者多个行,执行第二语句。
在本发明的一个实施方式中,执行模块830B包括:第一执行模块,配置用于响应于查询条件匹配于第二条件,针对表中的由结果列表中的标识符指示的一个或者多个行,执行第二语句中的操作。
在本发明的一个实施方式中,执行模块830B包括:搜索模块,配置用于响应于查询条件匹配于第二条件中的一部分,在表中的由结果列表中的标识符指示的一个或者多个行中搜索满足第二条件中的其他部分的至少一个行;以及第二执行模块,配置用于针对搜索到的至少一个行执行第二语句中的操作。
在本发明的一个实施方式中,进一步包括:提交模块,配置用于在数据库的一个事务中提交查询语句和第二语句。
采用本发明所述的方法和装置,可以为指定的查询语句创建“私有”索引,该索引可以包括与查询语句中的查询条件和查询结果相关联的信息。进一步,在后续发现其他数据处理语句中的条件与查询语句中的查询条件相同或者相似时,可以在不必针对数据表执行全面表扫描的情况下,直接使用索引中的查询结果来简化该其他数据处理语句的执行步骤,进而提高数据库系统的响应效率。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施方式中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。
Claims (20)
1.一种用于针对数据库中的表生成索引的方法,包括:
响应于接收到针对所述表进行查询的查询语句,在所述表中搜索满足所述查询语句中的查询条件的一个或者多个行;
基于所述一个或者多个行的标识符建立结果列表;以及
生成用于所述查询语句的所述索引,所述索引包括与所述查询条件和所述结果列表相关联的信息。
2.根据权利要求1所述的方法,其中所述索引还包括与所述表的标识符相关联的信息。
3.根据权利要求2所述的方法,其中所述生成用于所述查询语句的所述索引包括:
从所述查询语句中提取所述查询条件和所述表的标识符;以及
基于所述查询条件、所述表的标识符以及所述结果列表建立所述索引。
4.根据权利要求3所述的方法,其中所述基于所述查询条件、所述表的标识符以及所述结果列表建立所述索引包括:
获取所述查询条件和所述表的标识符的哈希值;以及
在所述哈希值与所述结果列表之间创建关联关系以建立所述索引。
5.根据权利要求1-4中的任一项所述的方法,进一步包括:
响应于所述表中的所述一个或者多个行中的任意一行被修改,将所述索引标识为无效。
6.根据权利要求5所述的方法,进一步包括:释放所述结果列表。
7.一种用于基于索引来在数据库中的表中进行操作的方法,包括:
从所述索引中解析查询条件和结果列表;
响应于接收到针对所述表进行操作的第二语句,确定所述查询条件匹配于所述第二语句中的第二条件中的至少一部分;以及
基于所述表中的由所述结果列表中的标识符指示的一个或者多个行,执行所述第二语句。
8.根据权利要求7所述的方法,其中所述基于所述表中的由所述结果列表中的标识符指示的一个或者多个行,执行所述第二语句包括:
响应于所述查询条件匹配于所述第二条件,针对所述表中的由所述结果列表中的标识符指示的一个或者多个行,执行所述第二语句中的操作。
9.根据权利要求7所述的方法,其中所述基于所述表中的由所述结果列表中的标识符指示的一个或者多个行,执行所述第二语句包括:
响应于所述查询条件匹配于所述第二条件中的一部分,在所述表中的由所述结果列表中的标识符指示的一个或者多个行中搜索满足所述第二条件中的其他部分的至少一个行;以及
针对搜索到的所述至少一个行执行所述第二语句中的操作。
10.根据权利要求7-9中的任一项所述的方法,进一步包括:
在所述数据库的一个事务中提交所述查询语句和所述第二语句。
11.一种用于针对数据库中的表生成索引的装置,包括:
搜索模块,配置用于响应于接收到针对所述表进行查询的查询语句,在所述表中搜索满足所述查询语句中的查询条件的一个或者多个行;
建立模块,配置用于基于所述一个或者多个行的标识符建立结果列表;以及
生成模块,配置用于生成用于所述查询语句的所述索引,所述索引包括与所述查询条件和所述结果列表相关联的信息。
12.根据权利要求11所述的装置,其中所述索引还包括与所述表的标识符相关联的信息。
13.根据权利要求12所述的装置,其中所述生成模块包括:
提取模块,配置用于从所述查询语句中提取所述查询条件和所述表的标识符;以及
建立模块,配置用于基于所述查询条件、所述表的标识符以及所述结果列表建立所述索引。
14.根据权利要求13所述的装置,其中搜索建立模块包括:
获取模块,配置用于获取所述查询条件和所述表的标识符的哈希值;以及
索引建立模块,配置用于在所述哈希值与所述结果列表之间创建关联关系以建立所述索引。
15.根据权利要求11-14中的任一项所述的装置,进一步包括:
标识模块,配置用于响应于所述表中的所述一个或者多个行中的任意一行被修改,将所述索引标识为无效。
16.根据权利要求15所述的装置,进一步包括:
释放模块,配置用于释放所述结果列表。
17.一种用于基于索引来在数据库中的表中进行操作的装置,包括:
解析模块,配置用于从所述索引中解析查询条件和结果列表;
确定模块,配置用于响应于接收到针对所述表进行操作的第二语句,确定所述查询条件匹配于所述第二语句中的第二条件中的至少一部分;以及
执行模块,配置用于基于所述表中的由所述结果列表中的标识符指示的一个或者多个行,执行所述第二语句。
18.根据权利要求17所述的装置,其中所述执行模块包括:
第一执行模块,配置用于响应于所述查询条件匹配于所述第二条件,针对所述表中的由所述结果列表中的标识符指示的一个或者多个行,执行所述第二语句中的操作。
19.根据权利要求17所述的装置,其中所述执行模块包括:
搜索模块,配置用于响应于所述查询条件匹配于所述第二条件中的一部分,在所述表中的由所述结果列表中的标识符指示的一个或者多个行中搜索满足所述第二条件中的其他部分的至少一个行;以及
第二执行模块,配置用于针对搜索到的所述至少一个行执行所述第二语句中的操作。
20.根据权利要求17-19中的任一项所述的装置,进一步包括:
提交模块,配置用于在所述数据库的一个事务中提交所述查询语句和所述第二语句。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410690310.0A CN105701098B (zh) | 2014-11-25 | 2014-11-25 | 针对数据库中的表生成索引的方法和装置 |
US14/886,235 US10489367B2 (en) | 2014-11-25 | 2015-10-19 | Generating an index for a table in a database background |
US16/664,286 US11194779B2 (en) | 2014-11-25 | 2019-10-25 | Generating an index for a table in a database background |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410690310.0A CN105701098B (zh) | 2014-11-25 | 2014-11-25 | 针对数据库中的表生成索引的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105701098A true CN105701098A (zh) | 2016-06-22 |
CN105701098B CN105701098B (zh) | 2019-07-09 |
Family
ID=56010388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410690310.0A Active CN105701098B (zh) | 2014-11-25 | 2014-11-25 | 针对数据库中的表生成索引的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10489367B2 (zh) |
CN (1) | CN105701098B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776702A (zh) * | 2016-11-11 | 2017-05-31 | 北京奇虎科技有限公司 | 一种处理主从式数据库系统中的索引的方法和装置 |
CN108460052A (zh) * | 2017-02-22 | 2018-08-28 | 中兴通讯股份有限公司 | 一种自动创建索引的方法、装置及数据库系统 |
CN109145164A (zh) * | 2018-08-28 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 数据处理方法、装置、设备和介质 |
CN110019273A (zh) * | 2017-12-28 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 用于数据库的数据处理方法、装置和系统 |
CN110162538A (zh) * | 2019-04-19 | 2019-08-23 | 平安科技(深圳)有限公司 | 自动生成通用查询语言cql的方法、装置和计算机设备 |
CN110209744A (zh) * | 2019-05-07 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 基于联盟链的关系型数据库及其操作方法和装置 |
CN110245137A (zh) * | 2019-05-07 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 一种索引的处理方法、装置及设备 |
CN110678854A (zh) * | 2017-05-31 | 2020-01-10 | 华为技术有限公司 | 数据查询的方法和装置 |
CN110704437A (zh) * | 2019-09-26 | 2020-01-17 | 上海达梦数据库有限公司 | 数据库查询语句的修改方法、装置、设备和存储介质 |
CN111831659A (zh) * | 2020-07-09 | 2020-10-27 | 天津车之家数据信息技术有限公司 | 一种检查索引的方法、装置及计算设备 |
CN111881145A (zh) * | 2020-07-31 | 2020-11-03 | 北京致远互联软件股份有限公司 | 业务数据表的处理方法、装置、服务器及存储介质 |
CN111897837A (zh) * | 2019-05-06 | 2020-11-06 | 百度在线网络技术(北京)有限公司 | 数据查询方法、装置、设备和介质 |
CN113051351A (zh) * | 2019-12-26 | 2021-06-29 | 斯诺弗雷克公司 | 修剪索引以增强数据库查询处理 |
CN113139097A (zh) * | 2020-01-19 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 数据写入、数据读取方法、装置及设备 |
CN114398378A (zh) * | 2022-03-25 | 2022-04-26 | 北京奥星贝斯科技有限公司 | 确定索引代价的方法和装置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701098B (zh) | 2014-11-25 | 2019-07-09 | 国际商业机器公司 | 针对数据库中的表生成索引的方法和装置 |
US10740311B2 (en) * | 2015-09-14 | 2020-08-11 | Sap Se | Asynchronous index loading for database computing system startup latency managment |
CN109582937A (zh) * | 2017-09-28 | 2019-04-05 | 北京国双科技有限公司 | 报表生成方法、装置、存储介质和处理器 |
CN108710708A (zh) * | 2018-05-31 | 2018-10-26 | 泰康保险集团股份有限公司 | 报表处理方法、装置、介质及电子设备 |
CN113726830B (zh) * | 2020-05-25 | 2023-09-12 | 网联清算有限公司 | 一种报文标识生成方法及装置 |
CN113535777B (zh) * | 2021-06-24 | 2023-05-23 | 上海浦东发展银行股份有限公司 | 数据库查询方法、装置和系统 |
US20230034257A1 (en) * | 2021-07-28 | 2023-02-02 | Micro Focus Llc | Indexes of vertical table columns having a subset of rows correlating to a partition range |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5511190A (en) * | 1995-01-20 | 1996-04-23 | Tandem Computers, Inc. | Hash-based database grouping system and method |
US6826557B1 (en) * | 1999-03-16 | 2004-11-30 | Novell, Inc. | Method and apparatus for characterizing and retrieving query results |
CN101593191A (zh) * | 2008-05-29 | 2009-12-02 | 国络多媒体有限公司 | 数据库的索引建立方法、数据库搜寻方法与系统 |
US20100114868A1 (en) * | 2008-10-21 | 2010-05-06 | International Business Machines Corporation | Query execution plan efficiency in a database management system |
CN103678619A (zh) * | 2013-12-17 | 2014-03-26 | 北京国双科技有限公司 | 数据库索引处理方法和装置 |
CN103810212A (zh) * | 2012-11-14 | 2014-05-21 | 阿里巴巴集团控股有限公司 | 一种数据库索引的自动创建方法及系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6952741B1 (en) * | 1999-06-30 | 2005-10-04 | Computer Sciences Corporation | System and method for synchronizing copies of data in a computer system |
US7499907B2 (en) * | 2001-10-12 | 2009-03-03 | Teradata Us, Inc. | Index selection in a database system |
US8321420B1 (en) | 2003-12-10 | 2012-11-27 | Teradata Us, Inc. | Partition elimination on indexed row IDs |
US8583657B2 (en) | 2004-05-06 | 2013-11-12 | Oracle International Corporation | Method and apparatus for using a hash-partitioned index to access a table that is not partitioned or partitioned independently of the hash partitioned index |
US9135299B2 (en) | 2009-09-01 | 2015-09-15 | Teradata Us, Inc. | System, method, and computer-readable medium for automatic index creation to improve the performance of frequently executed queries in a database system |
US8626729B2 (en) | 2009-09-28 | 2014-01-07 | Oracle International Corporation | Database index monitoring system |
US8515945B2 (en) | 2010-11-16 | 2013-08-20 | Sybase, Inc. | Parallel partitioning index scan |
CN102799514B (zh) * | 2011-05-24 | 2017-02-15 | 中兴通讯股份有限公司 | 一种日志记录管理方法和系统 |
US8468150B2 (en) | 2011-10-31 | 2013-06-18 | International Business Machines Corporation | Accommodating gaps in database index scans |
US9305056B1 (en) * | 2013-05-24 | 2016-04-05 | Amazon Technologies, Inc. | Results cache invalidation |
CN105701098B (zh) | 2014-11-25 | 2019-07-09 | 国际商业机器公司 | 针对数据库中的表生成索引的方法和装置 |
-
2014
- 2014-11-25 CN CN201410690310.0A patent/CN105701098B/zh active Active
-
2015
- 2015-10-19 US US14/886,235 patent/US10489367B2/en not_active Expired - Fee Related
-
2019
- 2019-10-25 US US16/664,286 patent/US11194779B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5511190A (en) * | 1995-01-20 | 1996-04-23 | Tandem Computers, Inc. | Hash-based database grouping system and method |
US6826557B1 (en) * | 1999-03-16 | 2004-11-30 | Novell, Inc. | Method and apparatus for characterizing and retrieving query results |
CN101593191A (zh) * | 2008-05-29 | 2009-12-02 | 国络多媒体有限公司 | 数据库的索引建立方法、数据库搜寻方法与系统 |
US20100114868A1 (en) * | 2008-10-21 | 2010-05-06 | International Business Machines Corporation | Query execution plan efficiency in a database management system |
CN103810212A (zh) * | 2012-11-14 | 2014-05-21 | 阿里巴巴集团控股有限公司 | 一种数据库索引的自动创建方法及系统 |
CN103678619A (zh) * | 2013-12-17 | 2014-03-26 | 北京国双科技有限公司 | 数据库索引处理方法和装置 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776702A (zh) * | 2016-11-11 | 2017-05-31 | 北京奇虎科技有限公司 | 一种处理主从式数据库系统中的索引的方法和装置 |
CN108460052A (zh) * | 2017-02-22 | 2018-08-28 | 中兴通讯股份有限公司 | 一种自动创建索引的方法、装置及数据库系统 |
WO2018153210A1 (zh) * | 2017-02-22 | 2018-08-30 | 中兴通讯股份有限公司 | 一种自动创建索引的方法、装置及数据库系统 |
CN108460052B (zh) * | 2017-02-22 | 2022-11-01 | 中兴通讯股份有限公司 | 一种自动创建索引的方法、装置及数据库系统 |
CN110678854A (zh) * | 2017-05-31 | 2020-01-10 | 华为技术有限公司 | 数据查询的方法和装置 |
CN110678854B (zh) * | 2017-05-31 | 2021-10-15 | 华为技术有限公司 | 数据查询的方法和装置 |
CN110019273A (zh) * | 2017-12-28 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 用于数据库的数据处理方法、装置和系统 |
CN109145164A (zh) * | 2018-08-28 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 数据处理方法、装置、设备和介质 |
CN110162538A (zh) * | 2019-04-19 | 2019-08-23 | 平安科技(深圳)有限公司 | 自动生成通用查询语言cql的方法、装置和计算机设备 |
CN110162538B (zh) * | 2019-04-19 | 2024-03-01 | 平安科技(深圳)有限公司 | 自动生成通用查询语言cql的方法、装置和计算机设备 |
CN111897837A (zh) * | 2019-05-06 | 2020-11-06 | 百度在线网络技术(北京)有限公司 | 数据查询方法、装置、设备和介质 |
CN111897837B (zh) * | 2019-05-06 | 2023-08-15 | 百度在线网络技术(北京)有限公司 | 数据查询方法、装置、设备和介质 |
CN110209744A (zh) * | 2019-05-07 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 基于联盟链的关系型数据库及其操作方法和装置 |
CN110245137B (zh) * | 2019-05-07 | 2023-06-27 | 创新先进技术有限公司 | 一种索引的处理方法、装置及设备 |
CN110245137A (zh) * | 2019-05-07 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 一种索引的处理方法、装置及设备 |
CN110704437B (zh) * | 2019-09-26 | 2022-05-20 | 上海达梦数据库有限公司 | 数据库查询语句的修改方法、装置、设备和存储介质 |
CN110704437A (zh) * | 2019-09-26 | 2020-01-17 | 上海达梦数据库有限公司 | 数据库查询语句的修改方法、装置、设备和存储介质 |
CN113051351A (zh) * | 2019-12-26 | 2021-06-29 | 斯诺弗雷克公司 | 修剪索引以增强数据库查询处理 |
CN113051351B (zh) * | 2019-12-26 | 2024-06-11 | 雪花公司 | 修剪索引以增强数据库查询处理 |
CN113139097A (zh) * | 2020-01-19 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 数据写入、数据读取方法、装置及设备 |
CN111831659B (zh) * | 2020-07-09 | 2022-09-06 | 天津车之家数据信息技术有限公司 | 一种检查索引的方法、装置及计算设备 |
CN111831659A (zh) * | 2020-07-09 | 2020-10-27 | 天津车之家数据信息技术有限公司 | 一种检查索引的方法、装置及计算设备 |
CN111881145A (zh) * | 2020-07-31 | 2020-11-03 | 北京致远互联软件股份有限公司 | 业务数据表的处理方法、装置、服务器及存储介质 |
CN114398378A (zh) * | 2022-03-25 | 2022-04-26 | 北京奥星贝斯科技有限公司 | 确定索引代价的方法和装置 |
CN114398378B (zh) * | 2022-03-25 | 2022-11-01 | 北京奥星贝斯科技有限公司 | 确定索引代价的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US10489367B2 (en) | 2019-11-26 |
US20160147751A1 (en) | 2016-05-26 |
CN105701098B (zh) | 2019-07-09 |
US20200057753A1 (en) | 2020-02-20 |
US11194779B2 (en) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105701098A (zh) | 针对数据库中的表生成索引的方法和装置 | |
US9646030B2 (en) | Computer-readable medium storing program and version control method | |
CN105740303A (zh) | 改进的对象存储的方法及装置 | |
CN109241174B (zh) | 数据同步方法、装置、可读存储介质和电子设备 | |
EP3206146A1 (en) | Data information processing method and device | |
US8924373B2 (en) | Query plans with parameter markers in place of object identifiers | |
CN107003935A (zh) | 优化数据库去重 | |
CN105205082A (zh) | 用于处理hdfs中的文件存储的方法和系统 | |
CN105683966A (zh) | 基于大数据的搜索方法及系统 | |
CN105224566A (zh) | 在关系数据库上支持命令式图形查询的方法和系统 | |
CN103544323A (zh) | 一种数据更新方法和装置 | |
US11003635B2 (en) | Database scheme for storing generic data | |
US20150006485A1 (en) | High Scalability Data Management Techniques for Representing, Editing, and Accessing Data | |
CN105335360A (zh) | 生成文档结构的方法和装置 | |
CN105554044A (zh) | 在本地对象存储节点中同步对象的方法及装置 | |
JP2021525915A (ja) | 暗号化された一致インデックスについての完全一致およびファジーマッチングでの重複の検出 | |
CN105760418B (zh) | 用于对关系数据库表进行交叉列搜索的方法和系统 | |
CN110109951B (zh) | 一种关联查询的方法、数据库应用系统及服务器 | |
US20190220441A1 (en) | Method, device and computer program product for data migration | |
CN107341080A (zh) | 一种测试用例管理系统及方法 | |
CN104951462A (zh) | 用于管理数据库的方法和系统 | |
JP6642435B2 (ja) | データ処理装置、データ処理方法、及び、プログラム | |
CN105446982A (zh) | 用于管理数据存储系统的方法和装置 | |
CN111221698A (zh) | 任务数据采集方法与装置 | |
US10586193B2 (en) | Mobile assessment tool |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |