增量式索引列表的生成方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種增量式索引列表的生成方法及裝置。
【背景技術(shù)】
[0002]索引是對(duì)數(shù)據(jù)庫(kù)表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu)。由于使用索引可快速訪問(wèn)數(shù)據(jù)庫(kù)表中的特定信息,因此可以基于數(shù)據(jù)庫(kù)表中的單列或多列創(chuàng)建索引,形成索引列表。通過(guò)創(chuàng)建的索引列表查找相應(yīng)數(shù)據(jù),加快數(shù)據(jù)的檢索速度,同時(shí)也可以提高系統(tǒng)的性會(huì)K。
[0003]由于數(shù)據(jù)庫(kù)中的數(shù)據(jù)在不斷增加,為了能夠滿足用戶的需求,需要對(duì)增加的數(shù)據(jù)創(chuàng)建相應(yīng)的索引項(xiàng),進(jìn)一步對(duì)索引列表進(jìn)行更新。
[0004]現(xiàn)有技術(shù)中,當(dāng)數(shù)據(jù)庫(kù)中出現(xiàn)新增數(shù)據(jù)時(shí),是對(duì)數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)再重新創(chuàng)建對(duì)應(yīng)的索引,生成新的索引列表。由于該方法是對(duì)數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)創(chuàng)建索引,因此創(chuàng)建索引的過(guò)程耗費(fèi)的時(shí)間長(zhǎng),效率低,并且會(huì)占用系統(tǒng)較多的資源。另外,由于數(shù)據(jù)庫(kù)中的數(shù)據(jù)更新速度非???,數(shù)據(jù)庫(kù)中不斷出現(xiàn)新的數(shù)據(jù),一旦數(shù)據(jù)庫(kù)中出現(xiàn)新的數(shù)據(jù),就需要對(duì)數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)創(chuàng)建索引,因此創(chuàng)建索引的過(guò)程是多次重復(fù)的過(guò)程,多次重復(fù)的為數(shù)據(jù)庫(kù)中所有數(shù)據(jù)創(chuàng)建索引,會(huì)加重系統(tǒng)的負(fù)擔(dān),甚至可能導(dǎo)致系統(tǒng)癱瘓。
【發(fā)明內(nèi)容】
[0005]鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的增量式索引列表的生成方法及裝置。
[0006]基于本發(fā)明的一個(gè)方面,提供了一種增量式索引列表的生成方法,包括:
[0007]在按照時(shí)間順序存儲(chǔ)有各索引項(xiàng)信息的原索引列表中,讀取所述索引列表中記載的末次索引的時(shí)間;
[0008]創(chuàng)建獨(dú)立的增量索引列表,采用所述原索引列表相同的存儲(chǔ)格式,對(duì)以所述末次索引的時(shí)間為起始點(diǎn)的新增索引數(shù)據(jù)進(jìn)行順序存儲(chǔ);
[0009 ]結(jié)合所述原索引列表和新增的增量索引列表,生成新的索引列表。
[0010]可選地,所述生成新的索引列表之后,還包括:
[0011]使用所述新的索引列表替換所述原索引列表。
[0012]可選地,所述方法還包括:讀取所述原索引列表的末次索引項(xiàng);
[0013]結(jié)合所述原索引列表和新增的增量索引列表,生成新的索引列表,具體包括:以所述原索引列表中的末次索引項(xiàng)為結(jié)合點(diǎn),結(jié)合所述原索引列表和所述新增的增量索引列表,生成新的索引列表。
[0014]可選地,所述創(chuàng)建獨(dú)立的增量索引列表,具體包括:采用與所述原索引列表相同存儲(chǔ)格式的狀態(tài)表作為所述增量索引列表。
[0015]可選地,結(jié)合所述原索引列表和所述新增的增量索引列表,生成新的索引列表,具體包括:
[0016]建立第一中間文件textl和第二中間文件text2 ;
[0017]在所述第二中間文件text2中寫(xiě)入所述新增的增量索引列表;
[0018]將所述第二中間文件text2的內(nèi)容賦予所述第一中間文件textl;
[0019]在承載所述原索引列表的索引文件textO中按時(shí)間順序繼續(xù)寫(xiě)入所述第一中間文件textl的內(nèi)容,以生成所述新的索引列表。
[0020]可選地,所述第一中間文件textl和所述第二中間文件text2的起始狀態(tài)均為空白狀態(tài)。
[0021]可選地,還包括:
[0022]所述新的索引列表生成之后,刪除所述第二中間文件text2中的內(nèi)容;
[0023]若出現(xiàn)另一個(gè)新增的增量索引列表,則繼續(xù)將該增量索引列表的內(nèi)容寫(xiě)入已刪除內(nèi)容的所述第二中間文件text2。
[0024]可選地,還包括:
[0025]若所述新的索引列表生成失敗,則將所述新的索引列表回退至未結(jié)合所述新增的增量索引列表的原索引列表狀態(tài)。
[0026]基于本發(fā)明的另一個(gè)方面,還提供了一種增量式索引列表的生成裝置,包括:
[0027]讀取模塊,適于在按照時(shí)間順序存儲(chǔ)有各索引項(xiàng)信息的原索引列表中,讀取所述索引列表中記載的末次索引的時(shí)間;
[0028]倉(cāng)I鍵模塊,適于創(chuàng)建獨(dú)立的增量索引列表,采用所述原索引列表相同的存儲(chǔ)格式,對(duì)以所述末次索引的時(shí)間為起始點(diǎn)的新增索引數(shù)據(jù)進(jìn)行順序存儲(chǔ);
[0029]生成模塊,適于結(jié)合所述原索引列表和新增的增量索引列表,生成新的索引列表。
[0030]可選地,所述裝置還包括:
[0031]替換模塊,適于使用所述新的索引列表替換所述原索引列表。
[0032]可選地,所述讀取模塊還適于:讀取所述原索引列表的末次索引項(xiàng);
[0033]所述生成模塊還適于:以所述原索引列表中的末次索引項(xiàng)為結(jié)合點(diǎn),結(jié)合所述原索引列表和所述新增的增量索引列表,生成新的索引列表。
[0034]可選地,所述創(chuàng)建模塊還適于:采用與所述原索引列表相同存儲(chǔ)格式的狀態(tài)表作為所述增量索引列表。
[0035]可選地,所述生成模塊還適于:
[0036]建立第一中間文件textl和第二中間文件text2 ;
[0037]在所述第二中間文件text2中寫(xiě)入所述新增的增量索引列表;
[0038]將所述第二中間文件text2的內(nèi)容賦予所述第一中間文件textl;
[0039]在承載所述原索引列表的索引文件textO中按時(shí)間順序繼續(xù)寫(xiě)入所述第一中間文件textl的內(nèi)容,以生成所述新的索引列表。
[0040]可選地,所述第一中間文件textl和所述第二中間文件text2的起始狀態(tài)均為空白狀態(tài)。
[0041 ] 可選地,所述生成模塊還適于:
[0042]所述新的索引列表生成之后,刪除所述第二中間文件text2中的內(nèi)容;
[0043]若出現(xiàn)另一個(gè)新增的增量索引列表,則繼續(xù)將該增量索引列表的內(nèi)容寫(xiě)入已刪除內(nèi)容的所述第二中間文件text2。
[0044]可選地,所述裝置還包括:
[0045]回退模塊,適于若所述新的索引列表生成失敗,則將所述新的索引列表回退至未結(jié)合所述新增的增量索引列表的原索引列表狀態(tài)。
[0046]采用本發(fā)明實(shí)施例中的方法,當(dāng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)發(fā)生變化后,讀取索引列表中記載的末次索引的時(shí)間,以末次索引的時(shí)間為起始點(diǎn)查找出新增索引數(shù)據(jù),并為新增索引數(shù)據(jù)創(chuàng)建增量索引列表,再將原索引列表與增量索引列表進(jìn)行結(jié)合,生成新的索引列表。與現(xiàn)有技術(shù)相比,當(dāng)數(shù)據(jù)庫(kù)中出現(xiàn)新增索引數(shù)據(jù)時(shí),本發(fā)明實(shí)施例中僅僅是為新增索引數(shù)據(jù)創(chuàng)建索引,不再是為數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)創(chuàng)建索引,由于新增索引數(shù)據(jù)的數(shù)量要遠(yuǎn)遠(yuǎn)小于與數(shù)據(jù)庫(kù)中所有數(shù)據(jù)的數(shù)量,因此為新增索引數(shù)據(jù)創(chuàng)建索引耗費(fèi)的時(shí)間短,提高了效率,并且為新增數(shù)據(jù)創(chuàng)建索引的過(guò)程較為簡(jiǎn)單,不容易出現(xiàn)錯(cuò)誤,保證了準(zhǔn)確率。另外,當(dāng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)更新的速度較快時(shí),數(shù)據(jù)庫(kù)中不斷出現(xiàn)新增索引數(shù)據(jù),因此需要多次重復(fù)地為新增索引數(shù)據(jù)創(chuàng)建索引,而本發(fā)明實(shí)施例僅為新增索引數(shù)據(jù)創(chuàng)建索引,由于新增索引數(shù)據(jù)的數(shù)量相對(duì)較少,避免了因多次重復(fù)生成大量數(shù)據(jù)對(duì)應(yīng)的索引造成的系統(tǒng)癱瘓。
[0047]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
[0048]根據(jù)下文結(jié)合附圖對(duì)本發(fā)明具體實(shí)施例的詳細(xì)描述,本領(lǐng)域技術(shù)人員將會(huì)更加明了本發(fā)明的上述以及其他目的、優(yōu)點(diǎn)和特征。
【附圖說(shuō)明】
[0049]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0050]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的增量式索引列表的生成方法的處理流程示意圖;
[0051]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的生成新的索引列表的處理流程示意圖;
[0052]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的原索引列表和增量索引列表結(jié)合的處理流程示意圖;
[0053]圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的新的索引列表生成失敗的處理流程示意圖;
[0054]圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的新的索引列表生成失敗后的原索引列表和增量索引列表再次結(jié)合的處理流程示意圖;
[0055]圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的增量式索引列表的生成裝置的結(jié)構(gòu)示意圖;以及
[0056]圖7示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的增量式索引列表的生成裝置的另一種結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0057]下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。<