一种数据索引创建方法、数据检索方法和系统的制作方法

文档序号:6400937阅读:190来源:国知局
专利名称:一种数据索引创建方法、数据检索方法和系统的制作方法
一种数据索引创建方法、数据检索方法和系统技术领域
本申请涉及数据库领域,更具体地说,涉及一种数据索引创建方法、数据检索方法和系统。
背景技术
随着现在总线带宽的不断提高,电子系统的仿真测试必不可少,这样就需要处理大批量的信息数据,所以在关于数据库处理的问题,引起了各个行业的关注,关注的重点是对大批量的数据进行数据存储、数据查询和数据分析等方面的内容。
目前常用的数据库在进行大批量处理时,都是有一些要求的,如在Mysql数据库对大批量数据的处理之前,要确保有合适的存储引擎,而在该数据库中无法同时满足时间、存储容量和空间利用的需求;MySql处理大批量数据可以使用多个值表的插入语句,由客户终端从存储Mysql数据库的服务器的磁盘中读取Mysql数据库中的数据,而从磁盘中读取数据降低读取速度,增加读取时间。
因此对于目前在处理数据尤其是处理大批量数据的时候,需要一种数据索引创建方法,以实现在时间上的节约,提高读取速度,并且保证空间上的合理分配。发明内容
为解决上述技术问题,本申请提供一种数据索引创建方法,以实现在处理大批量数据时,可以快速的完成索引的创建,节约时间,提高读取速度,并且节约空间。其技术方案如下:
本申请实施例提供一种数据索引创建方法,用于创建数据文件的数据索弓|,包括:
获取与所述数据文件对应的数据表文件记录的所有索引信息;
计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址;
按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中,其中所述数据文件预先存储在客户终端的硬盘中;
逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息;
确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中;
在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
优选地,所述依据索引记录区域大小计算每个索引信息的偏移首地址包括:
对于任意一个索引信息,获取该索引信息在所有索引信息中的顺序;
在该索引信息在所有索引信息中的顺序为I时,则顺序为I的索引信息的偏移首地址为O ;
在该索引信息在所有索引信息中的顺序为i,且i为正整数,i不等于I时,则顺序为i的索引信息的偏移首地址为顺序为1-ι的索引信息的偏移首地址与顺序为1-ι的索引信息对应的索引记录区域大小之和。
优选地,所述索引信息为关键字时,所述索引信息对应的索引记录区域大小为索引记录区域中每条数据占用字节数和该索引记录区域对应的偏移首地址在索引记录区域中占用字节数之和;
或者所述索引信息为时间点时,所述索引信息对应的索引记录区域大小为索引记录区域大小为索引记录区域中数据文件的号码占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和;
或者所述索引信息为关键字和时间点时,所述索引信息对应的索引记录区域大小为索引记录区域中所有时间点内每条数据占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和。
优选地,所述将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中包括:将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中,当缓存中剩余空间为O时,将缓存中存储的数据地址信息存储到对应的索引记录区域中,并清除缓存。
本申请实施例还提供一种数据检索方法,预先应用上述数据索引创建方法创建数据文件的数据索引,所述数据检索方法包括:
接收数据检索请求;
提取所述数据检索请求中携带的索引信息,并获取所述索引信息的偏移首地址;
依据索引信息的偏移首地址,确定所述索引信息对应的索引记录区域;
依据所述索引记录区域中记录的数据地址信息,从数据文件中读取数据地址信息对应的数据。
本申请实施例还提供一种数据索引创建系统,用于创建数据文件的数据索引,包括:第一获取模块、第一计算模块、第一读取模块、第一存储模块和创建模块;其中:
第一获取模块,用于获取数据表文件记录的所有索引信息;
第一计算模块,用于计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址;
第一读取模块,用于按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中;逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息,其中所述数据文件预先存储在客户终端的硬盘中;
第一存储模块,用于确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中;
创建模块,用于在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
优选地,所述第一计算模块包括:第二获取单元、判断单元、第一分配单元和第二分配单元;其中:
第二获取单元,用于对于任意一个索引信息,获取该索引信息在所有索引信息中的顺序;
判断单元,用于判断该索引信息在所有索引信息中的顺序;
第一分配单元,用于在该索引信息在所有索引信息中的顺序为I时,则顺序为I的索引信息的偏移首地址为O;
第二分配单元,用于在该索引信息在所有索引信息中的顺序为i,且i为正整数,i不等于I时,则顺序为i的索引信息的偏移首地址为顺序为1-Ι的索引信息的偏移首地址与顺序为1-ι的索引信息对应的索引记录区域大小之和。
优选地,所述索引信息为关键字时,所述第二分配单元中所述索引信息对应的索引记录区域大小为索引记录区域中每条数据占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和;
或者所述索引信息为时间点时,所述第二分配单元中所述索引信息对应的索引记录区域大小为索引记录区域中数据文件的号码占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和;
或者所述索引信息为关键字和时间点时,所述第二分配单元中所述索引信息对应的索引记录区域大小为索引记录区域中所有时间点内每条数据占用字节数和该索引记录区域对应的的偏移首地址在对应的索引记录区域中占用字节数之和。
优选地,
所述第一存储模块包括:第二存储单元,用于将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中;
判断模块,用于判断缓存中剩余空间是否为O ;
第三存储单元,用于在缓存中的剩余空间为O时,将缓存中存储的数据地址信息存储到对应的索引记录区域中,并清除缓存。
本申请实施例还提供一种数据检索系统,预先应用上述数据索引创建系统创建数据文件的数据索引,所述数据检索系统包括:
接收模块,用于接收数据检索请求;
提取模块,用于提取所述数据检索请求中携带的索引信息,并获取所述索引信息的偏移首地址;
匹配模块,用于依据索引信息的偏移首地址,确定所述索引信息对应的索引记录区域;
读取模块,用于依据所述索引记录区域中记录的数据地址信息,从数据文件中读取数据地址信息对应的数据。
应用本申请提供的技术方案,首先根据数据表文件记录的所有的索引信息,计算得到每个索引信息在索引记录区域中的偏移首地址;按照数据在数据文件中存储顺序,将数据文件中预设大小的数据库存放在固定大小的内存中,并逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中,在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
在应用本申请提供的技术方案时,数据文件预先存储在客户终端的硬盘中,因此客户终端可以直接对自身存储的数据文件建立数据索引,并依据数据索引检索数据文件,从而省去客户终端和服务器之间的反复的连接建立和断开时间,提高读取速度。而且在读取数据时可以从内存中读取数据,进一步节省读取时间,提高读取速度。并且通过计算每个索引信息对应的索引记录区域大小,则可以为每个索引记录区域分配固定的空间,如索引记录区域在存放数据地址信息时,可以使相邻两个索引记录区域中一个索引记录区域的尾地址和另一个索引记录区域的首地址相连,即相邻两个索引记录区域之间没有空闲区域,从而可以节约空间。


图1为本申请中提供的数据索引创建方法的一种流程图2为本申请中数据表文件的结构示意图3为本申请中计算每个索引信息的偏移首地址的具体流程图4为本申请中索引信息为关键字时的索引文件的内部结构图5为本申请中索引信息为时间点时的索引文件的内部结构图6为本申请中索引信息为关键字和时间点时的索引文件的内部结构图7为本申请中提供的数据检索方法的一种流程图8为本申请中数据索引创建系统的结构示意图9为本申请中第一计算模块的结构示意图10为本申请中第一存储模块的结构示意图11为本申请中数据检索系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供了一种数据索引创建方法,首先根据数据表文件记录的所有索引信息,计算每个索引信息的偏移首地址;然后按照数据在数据文件中存储顺序存放在固定大小的内块中,并逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息;确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中,在数据文件中所有数据的数据地址信息存储到对应的索引记录区域后完成数据索引的创建。
一个实施例
请参阅图1,其示出了本申请中提供的数据索引创建方法的一种流程图,该数据索引创建方法用于创建数据文件的数据索引,可以包括以下步骤:
步骤101:获取与数据文件对应的数据表文件记录的所有索引信息。
因为数据文件较大,所以在每次存储的时候,会有一个与数据文件对应的数据表文件,数据表文件中存储的是数据文件的信息。请参阅图2,其示出了本申请中数据表文件的结构不意图,包括:starttime、endtime、totalfilenum、key、key_count 和 key_seq。其中starttime为数据文件中第一条数据记录时间、endtime为数据文件最后一条数据记录时间,totalfilenum为每一次试验后对应的数据文件的个数;key为关键字,key_count为关键字key的条数,key_seq为关键字key的序列号。
步骤102:计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址。
在本实施例中,索引信息可以为关键字,如数据表文件中的key字段,如一个表示各地时间点的温度的数据文件中,其中关键字可以为地区,不同的关键字表示不同的地区。当然数据表文件中的starttime和endtime之间的时间可以划分为多个时间段,每个时间段的起始时间为时间点,并将时间点作为索引信息。此外索引信息还可以为关键字和时间点。
需要说明的是,对于一个数据文件,如果除了时间点和地区之外,还有其它多个不同的标注信息,那么可以从中选择一个标注信息作为关键字。
由于不同数据文件中存储的数据条数可能互不相同,且为了便于在数据量较大时可以方便对数据文件中的数据进行读取,需要对不同数据文件分别创建数据索引,并将不同数据文件的数据索引存储在不同区域中,所以在创建数据文件的数据索引时,需要获取不同数据文件的数据索引占用的空间以及索引信息的偏移首地址。
在本实施例中不同数据文件的数据索引占用的空间可以根据上述的数据表文件中的信息内容计算得出,进一步可以结合各个索引记录区域大小及索引记录区域顺序,计算该区域偏移首地址,具体请参阅图3,其示出了本申请中计算每个索引信息的偏移首地址的具体流程图,包括以下步骤:
S1:对于任意一个索引信息,获取该索引信息在所有索引信息中的顺序。
其中,索引信息在所有索引信息中的顺序,即索引信息是所有索引信息中的第几个索引信息。以索引信息为关键字为例,数据表文件中key_Seq为关键字key的序列号,该序列号表明关键字key是第几个关键字,所以该序列号可以表明索引信息为关键字时,索引信息在所有索引信息中的顺序。
而在索引信息为时间点时,可以依据对starttime和endtime之间的时间的划分确定索引信息在所有索引信息中的顺序。
S2:在该索引信息在所有索引信息中的顺序为I时,则顺序为I的索引信息的偏移首地址为O。
S3:在该索引信息在所有索引信息中的顺序为i,且i为正整数,i不等于I时,则顺序为i的索引信息的偏移首地址为顺序为1-ι的索引信息的偏移首地址与顺序为1-ι的索引信息对应的索引记录区域大小之和。
通过上述方法可以计算出每个索引信息的偏移首地址。
在索引信息为关键字时,偏移首地址的计算过程如下:首先获取此关键字在关键字中的顺序,关键字的顺序为I时,关键字对应的偏移首地址为0,关键字的顺序为i,且i为正整数,i不等于I时,则顺序为i的索引信息的偏移首地址为顺序为1-Ι的索引信息的偏移首地址与顺序为1-Ι的索引信息对应的索引记录区域大小之和。其中,所述索引信息对应的索引记录区域大小为索引记录区域中每条数据占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和。
在索引信息为时间点时,偏移首地址的计算过程如下:对于任意一个时间点,获取该时间点在所有索引信息中的顺序;在该时间点在所有索引信息中的顺序为I时,则顺序为I的时间点的偏移首地址为O ;在该时间点在所有时间点中的顺序为i,且i为正整数,i不等于I时,则顺序为i的时间点的偏移首地址为顺序为i_l的时间点的偏移首地址与顺序为i_l的时间点对应的索引记录区域大小之和。其中,所述索引信息对应的索引记录区域大小为索引记录区域中数据文件的号码占用字节数和该索引记录区域对应的的偏移首地址在对应的索引记录区域中占用字节数之和。
在索引信息为关键字和时间点时偏移首地址的计算过程如下:用坐标(X,y)表示索引信息为关键字和时间点的偏移地址,其中i表示该关键字在关键字信息中的顺序,其偏移地址为X,j表示该时间点在时间点信息中的顺序,偏移地址为I。当关键字的顺序为1,时间点的顺序为I时的偏移地址可以表示为(0,O);关键字的顺序为i,时间点的顺序为j的偏移地址中X为关键字顺序为1-Ι,时间点顺序为j的索引记录的偏移地址与关键字顺序为i_l,时间点顺序为j的索引记录的长度之和。I为关键字顺序为i,时间点顺序为j_l的索引记录的偏移地址与关键字顺序为i,时间点顺序为j-ι的索引记录的长度之和。
步骤103:按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中;逐条从内存中读取数据,并获取读取的每条数据的数据索弓I信息和数据地址信息,其中所述数据文件预先存储在客户终端的硬盘中。
在本实施例中,数据文件在读取之前首先是按照数据在数据文件中存储顺序存放在固定大小的内存中,并逐条从内存中读取数据。由于在读取数据时可以从内存中逐条读取,而内存的读取速度优于其他方式,所以从内存中读取数据加快本实施例提供的数据索引创建方法的处理速度,节约时间。
在从内存中逐条读取数据时,首先判断内存中是否存储有数据,如果内存中存储有数据,则直接从内存中逐条读取数据;如果内存中未存储有数据,则判断数据文件中是否存储有未存储到内存中的数据,如果有,则将数据文件中的数据存储到内存中,再从内存中逐条读取数据。
步骤104:确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中。
在内存的迭代器中记录有数据表文件中所有索引信息,并且对于不同索引信息分配不同的缓存,因此在内存逐条读取到数据后,首先查找迭代器中为该数据对应的索引信息分配的缓存,再将数据的数据地址信息存储到该缓存中。
需要说明的是:缓存的存储空间有限,所以将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中时,当缓存中剩余空间为O时,首先将缓存中存储的数据地址信息存储到对应的索引记录区域中,然后清除缓存,以存储其他数据的数据地址信息。
步骤105:在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
数据文件中的所有数据的地址信息都被完全存储到对应的索引记录区域时,则完成了此数据文件的数据索引创建。
如数据文件为记录北京的天气的数据文件,索引信息可以为关键字——北京,相应地北京这一索引信息对应的索引记录区域为用于存储所有索引信息区域中的第一个索引记录区域,则记录北京的天气的数据文件中的所有数据的数据地址信息可以依次存储到第一个索引记录区域中。
请参阅图4,其示出了本实施例中索引信息为关键字时的索引文件的内部结构图,在图中keyl关键字记录区域内记录有η条关键字为keyl的数据地址信息,从偏移首地址开始依次存储;在索引记录中存储的信息为datefilenum和dataoffset,其中datefilenum为数据文件编号,dataoffset为数据偏移地址。因此可以得出每条索引记录所占空间的长度。
请参阅图5,其示出了本实施例中索引信息为时间点时的索引文件的内部结构图,在图中T0、T1、T2...Tn为选取的时间点,下面的atefilenum和dataoffset分别为数据文件的号码和该时间点数据记录的起始偏移地址。
请参阅图6,其示出了本实施例中索引信息为关键字和时间点时的索引文件的内部结构示意图,在图中第一行为各个时间点、然后接着是关键字为keyl的索引记录区域,其中offsetl表示关键字为keyl的偏移首地址,时间点下面第一行的countl、count2...countn为关键字keyl的各个时间点到来的数据在该关键字中的条数。
通过本实施例提供的数据索引创建方法,可以在内存中逐条读取数据文件,并且在迭代器中建立各个索引信息的缓存,可以将数据文件中索引信息相同的多个数据的数据地址信息暂时放入到迭代器中对应的缓存,当其缓存中没有空余空间时,将多个数据的数据地址信息同时放入到相对应的索引记录区域中,节约了时间,提高了索引创建的效率。在本申请提供的技术方案在为每个索引记录区域分配固定的空间,这样可以节约空间,提高了空间利用率。
与上述数据索引创建方法相对应,本申请还提供了一种数据检索方法,请参阅图7,其示出了本申请中数据检索方法的流程图,主要包括以下步骤:
步骤701:接收数据检索请求。
在接收数据检索请求检索数据之前,首先需要创建数据文件的数据索引。其中数据文件的数据索引创建可以参见图1至图6的示意图以及示意图对应的实施例说明,对此不再加以阐述。
步骤702:提取所述数据检索请求中携带的索引信息,并获取所述索引信息的偏移首地址。
在本实施例中接收数据检索请求的过程其实是接收一个索引信息的过程。即在接收到的数据索弓I请求中携带有索引信息,该索引信息对应用户需要检索的数据文件。由于不同索引信息具有不同偏移首地址,所以在确定索引信息后,即可以获知该索引信息的偏移首地址。
当索引/[目息为关键字时,可以根据其关键字和在关键字中的条数从图4所不的结构图中找到对应的偏移首地址。当索引信息为时间点时,可以根据时间点从图5所示的结构图中找到对应的偏移首地址。当索引信息为关键字和时间点时,可以根据其提供的关键字和时间点信息从图6所示的结构图中找到对应的偏移首地址。
如索引信息为北京时,而在数据索引创建过程中北京这一索引信息的偏移首地址为50,所以在接收到北京这一索引信息对应的数据文件提出的数据检索请求,即可以获知北京这一索引信息的偏移首地址为50。
步骤703:依据索引信息的偏移首地址,确定所述索引信息对应的索引记录区域。
在索引信息的偏移首地址为已知的情况下,则可以确定索引信息对应的索引记录区域。当然还可以根据索引信息在该所有索引信息中的顺序确定其对应的索引记录区域。
步骤704:依据所述索引记录区域中记录的数据地址信息,从数据文件中读取数据地址信息对应的数据。
在索引信息对应的索引记录区域中存储有数据地址信息,而该数据地址信息为数据文件中每条数据的存储地址,所以依据数据地址信息即可以从数据文件中读取数据即可完成数据的检索。
与上述方法相对应,本申请还提供了一种数据索引创建系统,用于创建数据文件的数据索引,请参阅图8,其示出了本申请中数据索引创建系统的结构示意图,包括:第一获取模块801、第一计算模块802、第一读取模块803、第一存储模块804和创建模块805 ;其中:
第一获取模块801,用于获取与数据文件对应的数据表文件记录的所有索引信息。
数据表文件中存储的是数据文件的信息请参阅图2,其示出了本申请中数据表文件的结构不意图,包括:starttime、endtime、totalfilenum、key、key_count 和 key_seq。其中starttime为数据文件中第一条数据记录时间、endtime为数据文件最后一条数据记录时间,totalfilenum为每一次试验后对应的数据文件的个数;key为关键字,key_count为关键字key的条数,key_seq为关键字key的序列号。
第一计算模块802,用于计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址。
在本实施例中不同数据文件的数据索引占用的空间可以根据上述的数据表文件中的信息内容计算得出,进一步可以结合数据索引占用的空间计算出数据索引信息的偏移首地址,请参阅图9,其示出了本申请中第一计算模块802的结构示意图,所述第一计算模块802包括:第二获取单元901、第一判断单元902、第一分配单元903和第二分配单元904 ;其中:
第二获取单元901,用于对于任意一个索引信息,获取该索引信息在所有索引信息中的顺序。
索引信息在所有索引信息中的顺序,即索引信息是所有索引信息中的第几个索引信息。以索引信息为关键字为例,数据表文件中key_Seq为关键字key的序列号,该序列号表明关键字key是第几个关键字,所以该序列号可以表明索弓I信息为关键字时,索引信息在所有索引信息中的顺序。
第一判断单元902,用于判断该索引信息在所有索引信息中的顺序。
第一分配单元903,用于在该索引信息在所有索引信息中的顺序为I时,则顺序为I的索引信息的偏移首地址为O。
第二分配单元904,用于在该索引信息在所有索引信息中的顺序为i,且i为正整数,i不等于I时,则顺序为i的索引信息的偏移首地址为顺序为1-ι的索引信息的偏移首地址与顺序为1-Ι的索引信息对应的索引记录区域大小之和。
索引信息为关键字时,所述第二分配单元904中所述索引信息对应的索引记录区域大小为索引记录区域中每条数据占用字节数和该索引记录区域对应的的偏移首地址在对应的索引记录区域中占用字节数之和。
索引信息为时间点时,所述第二分配单元904中所述索引信息对应的索引记录区域大小为索引记录区域中数据文件的号码占用字节数和该索引记录区域对应的的偏移首地址在对应的索引记录区域中占用字节数之和。
索引信息为关键字和时间点时,所述第二分配单元904中所述索引信息对应的索引记录区域大小为索引记录区域中所有时间点内每条数据占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和。
第一读取模块803,用于按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中;逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息,其中所述数据文件预先存储在客户终端的硬盘中。
请参阅图10,其示出了本申请中第一存储模块804的结构示意图,所述第一存储模块804包括:第二存储单元401,用于将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中;
第二判断单元402,用于判断缓存中剩余空间是否为O ;
第三存储单元403,用于在缓存中的剩余空间为O时,将缓存中存储的数据地址信息存储到对应的索引记录区域中,并清除缓存。
在内存的迭代器中记录有数据表文件中所有索引信息,并且对于不同索引信息分配不同的缓存,因此在内存逐条读取到数据后,首先查找迭代器中为该数据对应的索引信息分配的缓存,再将数据的数据地址信息存储到该缓存中。
创建模块805,用于在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
数据文件中的所有数据的地址信息都被完全存储到对应的索引记录区域时,则完成了此数据文件的数据索引创建。
与上述方法实施例相对应,本申请还提供了一种数据检索系统,请参阅图11,其示出了本申请中数据检索系统的结构示意图,所述数据检索系统包括:接收模块501、提取模块502、匹配模块503和读取模块504 ;其中:
接收模块501,用于接收数据检索请求。
在接收数据检索请求检索数据之前,首先需要创建数据文件的数据索引。其中数据文件的数据索引系统可以参见图8至图10的示意图以及示意图对应的实施例说明,对此不再加以阐述。
提取模块502,用于提取所述数据检索请求中携带的索引信息,并获取所述索引信息的偏移首地址。
在本实施例中接收数据检索请求的过程其实是接收一个索引信息的过程。即在接收到的数据索弓I请求中携带有索引信息,该索引信息对应用户需要检索的数据文件。由于不同索引信息具有不同偏移首地址,所以在确定索引信息后,即可以获知该索引信息的偏移首地址。
匹配模块503,用于依据索引信息的偏移首地址,确定所述索引信息对应的索引记录区域;
在索引信息的偏移首地址为已知的情况下,则可以确定索引信息对应的索引记录区域。当然还可以根据索引信息在该所有索引信息中的顺序确定其对应的索引记录区域。
读取模块504,用于依据所述索引记录区域中记录的数据地址信息,从数据文件中读取数据地址信息对应的数据。
在索引信息对应的索引记录区域中存储有数据地址信息,而该数据地址信息为数据文件中每条数据的存储地址,所以依据数据地址信息即可以从数据文件中读取数据即可完成数据的检索。
以上所描述的装置或系统实施例仅仅是示意性的,其中所述作为分离部件说明的装置/单元可以是或者也可以不是物理上分开的,作为装置/单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个设备单元上来实现。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,在没有超过本申请的精神和范围内,可以通过其他的方式实现。当前的实施例只是一种示范性的例子,不应该作为限制,所给出的具体内容不应该限制本申请的目的。例如,所述单元或子单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或多个子单元结合一起。另外,多个单元可以或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
以上所述仅是本申请的具体实施方式
,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
权利要求
1.一种数据索引创建方法,用于创建数据文件的数据索引,其特征在于,包括: 获取与所述数据文件对应的数据表文件记录的所有索引信息; 计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址; 按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中,其中所述数据文件预先存储在客户终端的硬盘中; 逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息;确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中; 在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
2.根据权利要求1所述的数据索引创建方法,其特征在于,所述依据索引记录区域大小计算每个索引信息的偏移首地址包括: 对于任意一个索引信息,获取该索引信息在所有索引信息中的顺序; 在该索引信息在所有索引信息中的顺序为I时,则顺序为I的索引信息的偏移首地址为O ; 在该索引信息在所有索引信息中的顺序为i,且i为正整数,i不等于I时,则顺序为i的索引信息的偏移首地址为顺序为i_l的索引信息的偏移首地址与顺序为i_l的索引信息对应的索引记录区域大小之和。
3.根据权利要求2所述的数据索引创建方法,其特征在于,所述索引信息为关键字时,所述索引信息对应的索引记录区域大小为索引记录区域中每条数据占用字节数和该索引记录区域对应的偏移首地址在索引记录区域中占用字节数之和; 或者所述索引信息为时间点时,所述索引信息对应的索引记录区域大小为索引记录区域大小为索引记录区域中数据文件的号码占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和; 或者所述索引信息为关键字和时间点时,所述索引信息对应的索引记录区域大小为索引记录区域中所有时间点内每条数据占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区 域中占用字节数之和。
4.根据权利要求1至3任意一项所述的数据索引创建方法,其特征在于,所述将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中包括:将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中,当缓存中剩余空间为O时,将缓存中存储的数据地址信息存储到对应的索引记录区域中,并清除缓存。
5.一种数据检索方法,其特征在于,预先应用权利要求1至4任意一项所述的数据索引创建方法创建数据文件的数据索引,所述数据检索方法包括: 接收数据检索请求; 提取所述数据检索请求中携带的索引信息,并获取所述索引信息的偏移首地址; 依据索引信息的偏移首地址,确定所述索引信息对应的索引记录区域; 依据所述索引记录区域中记录的数据地址信息,从数据文件中读取数据地址信息对应的数据。
6.一种数据索引创建系统,用于创建数据文件的数据索引,其特征在于,包括:第一获取模块、第一计算模块、第一读取模块、第一存储模块和创建模块;其中: 第一获取模块,用于获取与所述数据文件对应的数据表文件记录的所有索引信息; 第一计算模块,用于计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址; 第一读取模块,用于按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中;逐条从内存中读取数据,并获取读取的每条数据的数据索弓I信息和数据地址信息,其中所述数据文件预先存储在客户终端的硬盘中; 第一存储模块,用于确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中; 创建模块,用于在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
7.根据权利要求6所述的数据索引创建系统,其特征在于,所述第一计算模块包括:第二获取单元、判断单元、第一分配单元和第二分配单元;其中: 第二获取单元,用于对于任意一个索引信息,获取该索引信息在所有索引信息中的顺序; 判断单元,用于判断该索引信息在所有索引信息中的顺序; 第一分配单元,用于在该索引信息在所有索引信息中的顺序为I时,则顺序为I的索引信息的偏移首地址 为O ; 第二分配单元,用于在该索引信息在所有索引信息中的顺序为i,且i为正整数,i不等于I时,则顺序为i的索引信息的偏移首地址为顺序为1-Ι的索引信息的偏移首地址与顺序为i_l的索引信息对应的索引记录区域大小之和。
8.根据权利要求7所述的数据索引创建系统,其特征在于,所述索引信息为关键字时,所述第二分配单元中所述索引信息对应的索引记录区域大小为索引记录区域中每条数据占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和; 或者所述索引信息为时间点时,所述第二分配单元中所述索引信息对应的索引记录区域大小为索引记录区域中数据文件的号码占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和; 或者所述索引信息为关键字和时间点时,所述第二分配单元中所述索引信息对应的索引记录区域大小为索引记录区域中所有时间点内每条数据占用字节数和该索引记录区域对应的的偏移首地址在对应的索引记录区域中占用字节数之和。
9.根据权利要求6至8任意一项所述的数据索引创建系统,其特征在于, 所述第一存储模块包括:第二存储单元,用于将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中; 判断模块,用于判断缓存中剩余空间是否为O ; 第三存储单元,用于在缓存中的剩余空间为O时,将缓存中存储的数据地址信息存储到对应的索引记录区域中,并清除缓存。
10.一种数据检索系统,其特征在于,预先应用权利要求6至9任意一项所述的数据索引创建系统创建数据文件的数据索引,所述数据检索系统包括: 接收模块,用于接收数据检索请求; 提取模块,用于提取所述数据检索请求中携带的索引信息,并获取所述索引信息的偏移首地址; 匹配模块,用于依据索引信息的偏移首地址,确定所述索引信息对应的索引记录区域; 读取模块,用于依据所述索引记录区域中记录的数据地址信息,从数据文件中读取数据地址信息对应的数据。
全文摘要
本发明公开一种数据索引创建方法、数据检索方法和系统。其中一种数据索引创建方法包括获取数据表文件记录的所有索引信息;计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址;按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中;逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息;确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中;在将数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建,以提高读取速度并节约空间。
文档编号G06F17/30GK103150397SQ201310099809
公开日2013年6月12日 申请日期2013年3月26日 优先权日2013年3月26日
发明者宋平, 代志远 申请人:北京经纬恒润科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1