專利名稱:一種基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)查詢技術(shù)領(lǐng)域,具體涉及一種基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法和裝置。
背景技術(shù):
數(shù)據(jù)庫(kù)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),傳統(tǒng)數(shù)據(jù)庫(kù)類型一般為關(guān)系型數(shù)據(jù)庫(kù),如傳統(tǒng)SQL型數(shù)據(jù)庫(kù)。目前,隨著互聯(lián)網(wǎng)業(yè)務(wù)的發(fā)展,頻繁并發(fā)的訪問(wèn)數(shù)據(jù)庫(kù),進(jìn)行數(shù)據(jù)的查詢的技術(shù)越來(lái)越受到人們重視?,F(xiàn)有技術(shù)中,一般采用鍵-值存儲(chǔ)形式創(chuàng)建非關(guān)系型數(shù)據(jù)庫(kù),這種非關(guān)系型數(shù)據(jù)庫(kù)一般僅保存在內(nèi)存中,因此可稱為內(nèi)存數(shù)據(jù)庫(kù)?;谶@種鍵-值的內(nèi)存數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)查詢時(shí),需要通過(guò)“鍵”來(lái)訪問(wèn)其對(duì)應(yīng)“值”,從而查詢到用戶所需的目標(biāo)數(shù)據(jù)。例如,一條 “鍵-值”的數(shù)據(jù)條目為“身份證號(hào)、姓名、身高”,在該數(shù)據(jù)條目中,由于“身份證號(hào)”可以唯一標(biāo)識(shí)一條數(shù)據(jù)條目,所以“身份證號(hào)”可以是前述的“鍵”,該條數(shù)據(jù)條目中的“身份證號(hào)、姓名、身高”為“數(shù)據(jù)項(xiàng)”,其分別對(duì)應(yīng)的值即是前述的“值”。當(dāng)需要查詢某條個(gè)人信息(即“值”)時(shí),只需要輸入此條信息的“鍵”(即是“身份證號(hào)”),該“鍵”用來(lái)唯一標(biāo)識(shí)此條信息的“值”,即可通過(guò)數(shù)據(jù)庫(kù)中記錄的“鍵”與“值”的對(duì)應(yīng)關(guān)系查詢到目標(biāo)數(shù)據(jù),即該“鍵”對(duì)應(yīng)的“身份證號(hào)、姓名、身高”的具體的值。但是,當(dāng)鍵-值存儲(chǔ)形式的數(shù)據(jù)庫(kù)需要存儲(chǔ)的數(shù)據(jù)量很大,數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系很復(fù)雜時(shí),采用現(xiàn)有技術(shù)的方法,頻繁并發(fā)的訪問(wèn)鍵-值存儲(chǔ)形式的數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的查詢,會(huì)由于數(shù)據(jù)搜索量大及數(shù)據(jù)的關(guān)聯(lián)關(guān)系復(fù)雜而使得對(duì)數(shù)據(jù)查詢的效率較低。
發(fā)明內(nèi)容
為了滿足對(duì)數(shù)據(jù)查詢高效率的要求,本發(fā)明提供了一種基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法和裝置。本發(fā)明提供了一種基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法,在所述數(shù)據(jù)庫(kù)中創(chuàng)建基于鍵-值的數(shù)據(jù)表,將所述數(shù)據(jù)表的至少一個(gè)數(shù)據(jù)項(xiàng)確定為所述數(shù)據(jù)表的索引項(xiàng);將所述數(shù)據(jù)表中的索引項(xiàng)對(duì)應(yīng)的索引值作為節(jié)點(diǎn),依照預(yù)設(shè)順序建立與所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù);所述方法包括根據(jù)接收到的用戶輸入的查詢索引項(xiàng),確定目標(biāo)索引樹(shù);根據(jù)用戶針對(duì)所述查詢索引項(xiàng)輸入的查詢索引值表達(dá)式,在所述確定的目標(biāo)索引樹(shù)中查詢目標(biāo)數(shù)據(jù),所述索引表達(dá)式表示一定范圍的索引值。優(yōu)選地,所述方法還包括在所述數(shù)據(jù)庫(kù)中添加任一數(shù)據(jù)條目后,根據(jù)所述數(shù)據(jù)條目的索引項(xiàng)對(duì)應(yīng)的索引值,按照所述預(yù)設(shè)順序在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)上增加一個(gè)節(jié)點(diǎn);在所述增加的節(jié)點(diǎn)上保存所述索引項(xiàng)對(duì)應(yīng)的索引值;更新增加節(jié)點(diǎn)后的索引樹(shù)。
優(yōu)選地,所述方法還包括在所述數(shù)據(jù)庫(kù)中刪除任一數(shù)據(jù)條目后,在所述數(shù)據(jù)條目的索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,按照預(yù)設(shè)順序查找所述索引項(xiàng)的索引值對(duì)應(yīng)的節(jié)點(diǎn);在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,將所述節(jié)點(diǎn)刪除;更新刪除所述節(jié)點(diǎn)后的索引樹(shù)。優(yōu)選地,所述方法還包括在所述數(shù)據(jù)庫(kù)中修改任一數(shù)據(jù)條目后,在修改了所述數(shù)據(jù)條目中索引項(xiàng)對(duì)應(yīng)的索引值時(shí),確定修改了索引值的索引項(xiàng);在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,按照預(yù)設(shè)順序查找所述修改的索引值對(duì)應(yīng)的節(jié) 占.在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,修改所述節(jié)點(diǎn)對(duì)應(yīng)的值;更新修改所述節(jié)點(diǎn)對(duì)應(yīng)的值后的索引樹(shù)。優(yōu)選地,所述根據(jù)用戶針對(duì)所述查詢索引項(xiàng)輸入的查詢索引值表達(dá)式,在所述確定的目標(biāo)索引樹(shù)中查詢目標(biāo)數(shù)據(jù),具體為,根據(jù)用戶輸入的查詢索引表達(dá)式,在利用相對(duì)地址查詢所述目標(biāo)索引樹(shù)后,查詢到目標(biāo)數(shù)據(jù),所述索引表達(dá)式為表示一定范圍的所述索引項(xiàng)對(duì)應(yīng)的索引值的表達(dá)式優(yōu)選地,所述數(shù)據(jù)庫(kù)中的任一數(shù)據(jù)項(xiàng)所占用內(nèi)存大小為可變的。優(yōu)選地,為所述數(shù)據(jù)庫(kù)中的任一數(shù)據(jù)項(xiàng)分配固定內(nèi)存,所述方法還包括創(chuàng)建所述數(shù)據(jù)表的內(nèi)存分配表,所述內(nèi)存分配表用于存儲(chǔ)任一數(shù)據(jù)項(xiàng)的相對(duì)于所述固定內(nèi)存的內(nèi)存剩余情況;依據(jù)所述內(nèi)存剩余情況回收所述數(shù)據(jù)項(xiàng)的剩余內(nèi)存。本發(fā)明還提供一種基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢裝置,所述裝置包括第一創(chuàng)建模塊,用于在所述數(shù)據(jù)庫(kù)中創(chuàng)建基于鍵-值的數(shù)據(jù)表;第一確定模塊,用于將所述建表模塊創(chuàng)建的數(shù)據(jù)表的至少一個(gè)數(shù)據(jù)項(xiàng)確定為所述數(shù)據(jù)表的索引項(xiàng);第二創(chuàng)建模塊;用于將所述數(shù)據(jù)表中的索引項(xiàng)對(duì)應(yīng)的索引值作為節(jié)點(diǎn),依照預(yù)設(shè)順序建立與所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù);第二確定模塊,用于根據(jù)接收到的用戶輸入的查詢索引項(xiàng),確定目標(biāo)索引樹(shù);第一查詢模塊,用于根據(jù)用戶針對(duì)所述查詢索引項(xiàng)輸入的查詢索引值表達(dá)式,在所述確定的目標(biāo)索引樹(shù)中查詢目標(biāo)數(shù)據(jù),所述索引表達(dá)式表示一定范圍的索引值。優(yōu)選地,所述裝置還包括增加模塊,用于在所述數(shù)據(jù)庫(kù)中添加任一數(shù)據(jù)條目后,根據(jù)所述數(shù)據(jù)條目的索引項(xiàng)對(duì)應(yīng)的索引值,按照所述預(yù)設(shè)順序在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)上增加一個(gè)節(jié)點(diǎn);第一保存模塊,用于在所述增加的節(jié)點(diǎn)上保存所述索引項(xiàng)對(duì)應(yīng)的索引值;第一更新模塊,用于更新增加節(jié)點(diǎn)后的索引樹(shù)。優(yōu)選地,所述裝置還包括第二查詢模塊,用于在所述數(shù)據(jù)庫(kù)中刪除任一數(shù)據(jù)條目后,在所述數(shù)據(jù)條目的索弓I項(xiàng)對(duì)應(yīng)的索引樹(shù)中,按照預(yù)設(shè)順序查詢所述索引項(xiàng)的索引值對(duì)應(yīng)的節(jié)點(diǎn);刪除模塊,用于在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,將所述節(jié)點(diǎn)刪除;
第二更新模塊,用于更新刪除所述節(jié)點(diǎn)后的索引樹(shù)。優(yōu)選地,所述裝置還包括第三確定模塊,用于在所述數(shù)據(jù)庫(kù)中修改任一數(shù)據(jù)條目后,在修改了所述數(shù)據(jù)條目中索引項(xiàng)對(duì)應(yīng)的索引值時(shí),確定修改了索引值的索引項(xiàng);第三查詢模塊,用于在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,按照預(yù)設(shè)順序查找所述修改的索引值對(duì)應(yīng)的節(jié)點(diǎn);
修改模塊,用于在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,修改所述節(jié)點(diǎn)對(duì)應(yīng)的值;第三更新模塊,用于更新修改所述節(jié)點(diǎn)對(duì)應(yīng)的值后的索引樹(shù)。與現(xiàn)有技術(shù)相比,本發(fā)明預(yù)先將數(shù)據(jù)表中的至少一個(gè)數(shù)據(jù)項(xiàng)確定為數(shù)據(jù)表的索引項(xiàng),并將各個(gè)索引項(xiàng)對(duì)應(yīng)的索引值分別按照預(yù)設(shè)的順序建立索引樹(shù),用特定順序的索引樹(shù)對(duì)索引值進(jìn)行存儲(chǔ),便于數(shù)據(jù)的查詢。系統(tǒng)通過(guò)接收用戶輸入的索引項(xiàng),確定輸入的索引項(xiàng)對(duì)應(yīng)的索引樹(shù),在確定的索引樹(shù)中按照一定的順序?qū)δ繕?biāo)數(shù)據(jù)進(jìn)行查詢。與現(xiàn)有技術(shù)相比,本方案使用索引按照預(yù)設(shè)順序進(jìn)行數(shù)據(jù)查詢,使得數(shù)據(jù)查詢的效率得到很大的提高。
為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明實(shí)施例一的基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法的流程圖;圖2為本發(fā)明實(shí)施例一的基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法的對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行添加的流程圖;圖3為本發(fā)明實(shí)施例一的基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法的對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行刪除的流程圖;圖4為本發(fā)明實(shí)施例一的基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法的對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修改的流程圖;圖5為本發(fā)明實(shí)施例二的基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢裝置的結(jié)構(gòu)圖;圖6為本發(fā)明實(shí)施例二的基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢裝置中的對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行添加的裝置結(jié)構(gòu)圖;圖7為本發(fā)明實(shí)施例二的基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢裝置中的對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行刪除的裝置結(jié)構(gòu)圖;圖8為本發(fā)明實(shí)施例二的基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢裝置中的對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修改的裝置結(jié)構(gòu)圖。
具體實(shí)施例方式實(shí)施例一、參考圖1,圖I為本發(fā)明提供的一種基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法實(shí)施例一的流程圖,本實(shí)施例具體可以包括步驟101、在所述數(shù)據(jù)庫(kù)中創(chuàng)建基于鍵-值的數(shù)據(jù)表。
本實(shí)施例中,在進(jìn)行數(shù)據(jù)查詢之前,首先需要?jiǎng)?chuàng)建用于存儲(chǔ)數(shù)據(jù)的基于鍵-值的數(shù)據(jù)表,具體的,創(chuàng)建基于鍵-值的數(shù)據(jù)表的過(guò)程為現(xiàn)有技術(shù),所以在此不再贅述,同時(shí)在數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表的方式很多,不同的創(chuàng)建方式不影響本實(shí)施例的施行,所以,所有通過(guò)創(chuàng)建數(shù)據(jù)表實(shí)現(xiàn)本實(shí)施例的步驟均屬于本發(fā)明保護(hù)范圍。實(shí)際操作中,基于鍵-值的數(shù)據(jù)表用于存儲(chǔ)數(shù)據(jù),其中每條數(shù)據(jù)占用的內(nèi)存可以是固定的,此時(shí),需要為當(dāng)前數(shù)據(jù)表創(chuàng)建內(nèi)存分配表,該內(nèi)存分配表用于存儲(chǔ)每條數(shù)據(jù)項(xiàng)所占用的固定內(nèi)存的剩余情況,例如,當(dāng)每個(gè)數(shù)據(jù)表的數(shù)據(jù)項(xiàng)分配的固定內(nèi)存為10時(shí),如果存在一條數(shù)據(jù)僅需要4的內(nèi)存,則剩余的6 (10-4)的內(nèi)存即被存儲(chǔ)于該內(nèi)存分配表中,便于后續(xù)回收再利用。同時(shí),基于鍵-值的數(shù)據(jù)表存儲(chǔ)的每條數(shù)據(jù)占用的內(nèi)存也可以是可變的,即該數(shù)據(jù)需要多大的內(nèi)存時(shí),系統(tǒng)就為其分配相應(yīng)的內(nèi)存空間,該方法可以避免產(chǎn)生內(nèi)存碎片,使系統(tǒng)資源利用率較高。
步驟102、將所述數(shù)據(jù)表的至少一個(gè)數(shù)據(jù)項(xiàng)確定為所述數(shù)據(jù)表的索引項(xiàng)。本實(shí)施例中,創(chuàng)建成功的數(shù)據(jù)表用于存儲(chǔ)數(shù)據(jù)條目,每條數(shù)據(jù)條目包括若干數(shù)據(jù)項(xiàng),若干數(shù)據(jù)項(xiàng)中有至少一項(xiàng)索引項(xiàng)。例如存儲(chǔ)于數(shù)據(jù)表中的數(shù)據(jù)條目為“姓名-年齡-身高-體重”,即此數(shù)據(jù)條目包括“姓名、年齡、身高和體重”四個(gè)數(shù)據(jù)項(xiàng),可以將年齡、身高和體重中的至少一項(xiàng)作為該數(shù)據(jù)表的索引項(xiàng)。具體的,確定索引項(xiàng)的標(biāo)準(zhǔn)可以是方便排序的數(shù)據(jù)項(xiàng),也可以根據(jù)用戶需求確定索引項(xiàng)。實(shí)際操作中,有些數(shù)據(jù)表不具有索引項(xiàng),即為簡(jiǎn)單的基于鍵-值的數(shù)據(jù)表,對(duì)于此類數(shù)據(jù)表的數(shù)據(jù)查詢,可以依據(jù)現(xiàn)有技術(shù)的基于鍵-值的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法進(jìn)行數(shù)據(jù)查詢,在此不再贅述。步驟103、將所述數(shù)據(jù)表中的索引項(xiàng)對(duì)應(yīng)的索引值作為節(jié)點(diǎn),依照預(yù)設(shè)順序建立與所述索弓I項(xiàng)對(duì)應(yīng)的索引樹(shù)。本實(shí)施例中,在創(chuàng)建成功的數(shù)據(jù)表中確定索引項(xiàng)后,將索引項(xiàng)對(duì)應(yīng)的索引值按照預(yù)先設(shè)置的順序,建立該索引項(xiàng)對(duì)應(yīng)的索引樹(shù),此時(shí),該索引項(xiàng)對(duì)應(yīng)的索引值作為該索引樹(shù)的節(jié)點(diǎn)。創(chuàng)建的索引樹(shù)用于存儲(chǔ)預(yù)先確定的索引項(xiàng)對(duì)應(yīng)的索引值的順序關(guān)系。如將步驟102的數(shù)據(jù)條目中的“年齡”作為索引項(xiàng),多條數(shù)據(jù)條目的索引值,即年齡值為“23、25、45、33”,同時(shí)預(yù)先設(shè)定的順序?yàn)閺男〉酱蟮纳蚺帕?,此時(shí),該年齡索引樹(shù)為23-25-33-45形式的二叉樹(shù)。具體的,預(yù)設(shè)順序可以是升序或者降序,也可以是按照首字母的順序排列。該預(yù)設(shè)順序的設(shè)置方式以及設(shè)置依舊不影響本實(shí)施例的實(shí)施。步驟104、根據(jù)接收到的用戶輸入的查詢索引項(xiàng),確定目標(biāo)索引樹(shù)。本實(shí)施例中,用戶輸入用于查詢的索引項(xiàng),確定該索引項(xiàng)對(duì)應(yīng)的索引樹(shù),例如,用戶輸入“年齡”作為索引項(xiàng),那么,根據(jù)該“年齡”索引項(xiàng)就可以確定用戶即將根據(jù)“年齡”索引項(xiàng)進(jìn)行數(shù)據(jù)查詢,進(jìn)而確定“年齡”索引項(xiàng)對(duì)應(yīng)的索引樹(shù)作為目標(biāo)索引樹(shù)。實(shí)際操作中,可以以向用戶提供索引項(xiàng)選擇界面的方式,讓用戶選擇所要依據(jù)查詢的索引項(xiàng),例如該數(shù)據(jù)表中存在“年齡”、“身高”和“體重”三個(gè)索引項(xiàng),那么索引選擇界面會(huì)提供三個(gè)可選索引項(xiàng),即“年齡”、“身高”和“體重”,用戶只需要選擇其一作為查詢索引項(xiàng)即可,進(jìn)而確定選擇的索引項(xiàng)對(duì)應(yīng)的索引樹(shù)為目標(biāo)索引樹(shù)。步驟105、根據(jù)用戶針對(duì)所述查詢索引項(xiàng)輸入的查詢索引值表達(dá)式,在所述確定的目標(biāo)索引樹(shù)中查詢目標(biāo)數(shù)據(jù),所述索引表達(dá)式表示一定范圍的索引值。本實(shí)施例中,在根據(jù)用戶輸入的查詢索引項(xiàng)確定了索引樹(shù)之后,用戶針對(duì)查詢索引項(xiàng)會(huì)輸入查詢索引值表達(dá)式,進(jìn)而根據(jù)用戶輸入的查詢索引值表達(dá)式確定用戶查詢目標(biāo)數(shù)據(jù),其中,查詢表達(dá)式表示一定范圍的索引值。例如,用戶在確定了用于查詢的年齡索引樹(shù)后,進(jìn)而確定想要查詢的數(shù)據(jù)為“大于33的年齡的數(shù)據(jù)條目”,所以,“大于33”即為用戶輸入的查詢索引值表達(dá)式,可以根據(jù)用戶輸入的該“大于33”的查詢索引值表達(dá)式在“年齡”索引樹(shù)中確定所有大于33歲的節(jié)點(diǎn)作為目標(biāo)數(shù)據(jù)。實(shí)際操作中,數(shù)據(jù)庫(kù)是利用相對(duì)地址進(jìn)行目標(biāo)數(shù)據(jù)的查詢,即通過(guò)索引樹(shù)獲得目標(biāo)數(shù)據(jù)的相對(duì)地址,該相對(duì)地址是相對(duì)于內(nèi)存塊起始地址的偏移值,通過(guò)計(jì)算得到目標(biāo)數(shù) 據(jù)的實(shí)際內(nèi)存地址。無(wú)論內(nèi)存塊是否被重新加載,其相對(duì)地址是不變的,因此只要內(nèi)存塊加載時(shí)確定了起始地址,通過(guò)計(jì)算還是能獲得目標(biāo)數(shù)據(jù)正確的內(nèi)存地址。本實(shí)施例還可以對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)條目進(jìn)行添加操作,參考圖2,圖2為本實(shí)施例中對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行添加的流程圖,具體如下步驟201、在所述數(shù)據(jù)庫(kù)中添加任一數(shù)據(jù)條目后,根據(jù)所述數(shù)據(jù)條目的索引項(xiàng)對(duì)應(yīng)的索引值,按照所述預(yù)設(shè)順序在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)上增加一個(gè)節(jié)點(diǎn)。本實(shí)例中,在數(shù)據(jù)庫(kù)的數(shù)據(jù)表中添加一條數(shù)據(jù)條目時(shí),將此數(shù)據(jù)條目中的索引項(xiàng)對(duì)應(yīng)的索引值,按照預(yù)設(shè)順序添加到該索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,作為該索引樹(shù)的節(jié)點(diǎn)。具體的,所述的預(yù)設(shè)順序即為前述創(chuàng)建該索引樹(shù)所依據(jù)的預(yù)設(shè)順序。步驟202、在所述增加的節(jié)點(diǎn)上保存所述索引項(xiàng)對(duì)應(yīng)的索引值。本實(shí)施例中,在所述索弓I樹(shù)中添加索弓丨項(xiàng)對(duì)應(yīng)的索引值作為該索引樹(shù)的節(jié)點(diǎn),進(jìn)而將其保存。步驟203、更新增加節(jié)點(diǎn)后的索引樹(shù)。本實(shí)施例中,在所述索引樹(shù)中添加了節(jié)點(diǎn)并保存了節(jié)點(diǎn)上的索引值后,將該索引樹(shù)更新。本實(shí)施例中,在對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行添加時(shí),也將添加了索引值的索引樹(shù)進(jìn)行更新操作,保證了后續(xù)步驟的數(shù)據(jù)查詢操作能夠在更新后的索引數(shù)中機(jī)進(jìn)行,保證了數(shù)據(jù)查詢的準(zhǔn)確性。本實(shí)施例還可以包括對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行刪除的操作,參考圖3,圖3為本實(shí)施例中對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行刪除的流程圖,具體如下步驟301、在所述數(shù)據(jù)庫(kù)中刪除任一數(shù)據(jù)條目后,在所述數(shù)據(jù)條目的索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,按照預(yù)設(shè)順序查找所述索引項(xiàng)的索引值對(duì)應(yīng)的節(jié)點(diǎn)。本實(shí)例中,在數(shù)據(jù)庫(kù)的數(shù)據(jù)表中刪除一條數(shù)據(jù)條目時(shí),首先確定該數(shù)據(jù)表的索引項(xiàng)對(duì)應(yīng)的此數(shù)據(jù)條目中的索引值,其次,按照預(yù)設(shè)順序在該索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中確定該索引值的節(jié)點(diǎn)。具體的,所述的預(yù)設(shè)順序即為前述創(chuàng)建該索引樹(shù)所依據(jù)的預(yù)設(shè)順序。步驟302、在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,將所述節(jié)點(diǎn)刪除。本實(shí)施例中,在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中確定了即將刪除的節(jié)點(diǎn)后,將此確定節(jié)點(diǎn)刪除。步驟303、更新刪除所述節(jié)點(diǎn)后的索引樹(shù)。本實(shí)施例中,將確定節(jié)點(diǎn)刪除后,就該節(jié)點(diǎn)的前一節(jié)點(diǎn)和后一節(jié)點(diǎn)按照預(yù)設(shè)順序調(diào)整,即更新刪除了確定節(jié)點(diǎn)的索引樹(shù)。
本實(shí)施例中,在對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行刪除時(shí),也將刪除了索引值的索引樹(shù)進(jìn)行更新操作,保證了后續(xù)步驟的數(shù)據(jù)查詢操作能夠在更新后的索引數(shù)中機(jī)進(jìn)行,保證了數(shù)據(jù)查詢的準(zhǔn)確性。本實(shí)施例還可以包括對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修改的操作,參考圖4,圖4為本實(shí)施例中對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修改的流程圖,具體如下步驟401、在所述數(shù)據(jù)庫(kù)中修改任一數(shù)據(jù)條目后,在修改了所述數(shù)據(jù)條目中索引項(xiàng)對(duì)應(yīng)的索引值時(shí),確定修改了索引值的索引項(xiàng)。本實(shí)施例中,當(dāng)用戶對(duì)數(shù)據(jù)表中的任一數(shù)據(jù)條目進(jìn)行修改時(shí),當(dāng)修改的數(shù)據(jù)值恰好為該數(shù)據(jù)表的索引項(xiàng)之一時(shí),確定該修改了索引值的索引項(xiàng),進(jìn)而確定該索引項(xiàng)對(duì)應(yīng)的索引樹(shù)。具體操作時(shí),當(dāng)用戶修改的數(shù)據(jù)條目的信息不是該數(shù)據(jù)表的索引相對(duì)應(yīng)的值時(shí),該數(shù)據(jù)表的各個(gè)索引樹(shù)不需要相應(yīng)的訪問(wèn)、修改以及更新。步驟402、在所述索弓I項(xiàng)對(duì)應(yīng)的索引樹(shù)中,按照預(yù)設(shè)順序查找所述修改的索引值對(duì)應(yīng)的節(jié)點(diǎn)。本實(shí)施例中,在確定了修改索引值的索引項(xiàng)后,進(jìn)而確定該索引項(xiàng)對(duì)應(yīng)的索引樹(shù),在該索引樹(shù)中按照預(yù)設(shè)順序查找并確定該被修改的索引值對(duì)應(yīng)的節(jié)點(diǎn)。具體的,所述的預(yù)設(shè)順序即為前述創(chuàng)建該索引樹(shù)所依據(jù)的預(yù)設(shè)順序。步驟403、在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,修改所述節(jié)點(diǎn)對(duì)應(yīng)的值。本實(shí)施例中,在確定了被修改的索引值對(duì)應(yīng)的節(jié)點(diǎn)后,同時(shí)將該索引樹(shù)上的該節(jié)點(diǎn)對(duì)應(yīng)的值也修改。步驟404、更新修改所述節(jié)點(diǎn)對(duì)應(yīng)的值后的索引樹(shù)。本實(shí)施例中,在修改了節(jié)點(diǎn)對(duì)應(yīng)值后,將該索引樹(shù)更新。本實(shí)施例中,在對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修改時(shí),也將修改了索引值的索引樹(shù)進(jìn)行更新操作,保證了后續(xù)步驟的數(shù)據(jù)查詢操作能夠在更新后的索引數(shù)中機(jī)進(jìn)行,保證了數(shù)據(jù)查詢的準(zhǔn)確性。需要說(shuō)明的是,本發(fā)明實(shí)施例在創(chuàng)建索引樹(shù)的時(shí)候,各個(gè)節(jié)點(diǎn)按照何種順序進(jìn)行排列,那么在后續(xù)需要更新索引樹(shù)的時(shí)候,例如添加節(jié)點(diǎn)、刪除節(jié)點(diǎn)或者修改節(jié)點(diǎn)的時(shí)候,也需要按照同樣的順序進(jìn)行索引樹(shù)的更新。值得注意的是,本實(shí)施例中的對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行添加、刪除和修改的操作與對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢的操作是相對(duì)獨(dú)立的,對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行添加、刪除和修改的操作可以在對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢之前進(jìn)行,此種情況下,當(dāng)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢時(shí),一般為在對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行添加、刪除和修改后進(jìn)行更新了的索引樹(shù)的基礎(chǔ)上進(jìn)行的。對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行添加、刪除和修改的操作可以在對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢之后進(jìn)行,為下一次的數(shù)據(jù)查詢操作做好準(zhǔn)備。具體的,對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行添加、刪除和修改的操作在對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢之前或者之后都可以,上述操作執(zhí)行的先后順序并不影響本實(shí)施例的施行。本實(shí)施例中,預(yù)先將數(shù)據(jù)表中的至少一個(gè)數(shù)據(jù)項(xiàng)確定為數(shù)據(jù)表的索引項(xiàng),并將各個(gè)索引項(xiàng)對(duì)應(yīng)的索引值分別按照預(yù)設(shè)的順序建立索引樹(shù),用特定順序的索引樹(shù)對(duì)索引值進(jìn)行存儲(chǔ),便于數(shù)據(jù)的查詢。系統(tǒng)通過(guò)接收用戶輸入的索引項(xiàng),確定輸入的索引項(xiàng)對(duì)應(yīng)的索引樹(shù),在確定的索引樹(shù)中按照一定的順序?qū)δ繕?biāo)數(shù)據(jù)進(jìn)行查詢。與現(xiàn)有技術(shù)相比,本方案使用索引按照預(yù)設(shè)順序進(jìn)行數(shù)據(jù)查 詢,使得數(shù)據(jù)查詢的效率得到很大的提高。實(shí)施例二、參考圖5,圖5為本發(fā)明提供的一種基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢裝置實(shí)施例二的裝置結(jié)構(gòu)圖,本實(shí)施例具體可以包括第一創(chuàng)建模塊501,用于在所述數(shù)據(jù)庫(kù)中創(chuàng)建基于鍵-值的數(shù)據(jù)表;第一確定模塊502,用于將所述數(shù)據(jù)表的至少一個(gè)數(shù)據(jù)項(xiàng)確定為所述數(shù)據(jù)表的索引項(xiàng);第二創(chuàng)建模塊503,用于將所述數(shù)據(jù)表中的索引項(xiàng)對(duì)應(yīng)的索引值作為節(jié)點(diǎn),依照預(yù)設(shè)順序建立與所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù);第二確定模塊504,用于根據(jù)接收到的用戶輸入的查詢索引項(xiàng),確定目標(biāo)索引樹(shù);第一查詢模塊505,用于根據(jù)用戶針對(duì)所述查詢索引項(xiàng)輸入的查詢索引值表達(dá)式,在所述確定的目標(biāo)索引樹(shù)中查詢目標(biāo)數(shù)據(jù),所述索引表達(dá)式表示一定范圍的索引值。本裝置還可以包括參考圖6,圖6為本實(shí)施例中對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行添加的裝置,具體如下增加模塊601,用于在所述數(shù)據(jù)庫(kù)中添加任一數(shù)據(jù)條目后,根據(jù)所述數(shù)據(jù)條目的索弓I項(xiàng)對(duì)應(yīng)的索引值,按照所述預(yù)設(shè)順序在所述索弓I項(xiàng)對(duì)應(yīng)的索引樹(shù)上增加一個(gè)節(jié)點(diǎn)。第一保存模塊602,用于在所述增加的節(jié)點(diǎn)上保存所述索引項(xiàng)對(duì)應(yīng)的索引值;第一更新模塊603,用于更新增加節(jié)點(diǎn)后的索引樹(shù)。本裝置還可以包括參考圖7,圖7為本實(shí)施例中對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行刪除的裝置,具體如下第二查詢模塊701,用于在所述數(shù)據(jù)庫(kù)中刪除任一數(shù)據(jù)條目后,在所述數(shù)據(jù)條目的索弓I項(xiàng)對(duì)應(yīng)的索引樹(shù)中,按照預(yù)設(shè)順序查詢所述索引項(xiàng)的索引值對(duì)應(yīng)的節(jié)點(diǎn);刪除模塊702,用于在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,將所述節(jié)點(diǎn)刪除;第二更新模塊703,用于更新刪除所述節(jié)點(diǎn)后的索引樹(shù)。本裝置還可以包括參考圖8,圖8為本實(shí)施例中對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修改的裝置,具體如下第三確定模塊801,用于在所述數(shù)據(jù)庫(kù)中修改任一數(shù)據(jù)條目后,在修改了所述數(shù)據(jù)條目中索引項(xiàng)對(duì)應(yīng)的索引值時(shí),確定修改了索引值的索引項(xiàng)。第三查詢模塊802,用于在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,按照預(yù)設(shè)順序查找所述修改的索引值對(duì)應(yīng)的節(jié)點(diǎn);修改模塊803,用于在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,修改所述節(jié)點(diǎn)對(duì)應(yīng)的值;第三更新模塊804,用于更新修改所述節(jié)點(diǎn)對(duì)應(yīng)的值后的索引樹(shù)。本實(shí)施例預(yù)先將數(shù)據(jù)表中的至少一個(gè)數(shù)據(jù)項(xiàng)確定為數(shù)據(jù)表的索引項(xiàng),并將各個(gè)索引項(xiàng)對(duì)應(yīng)的索引值分別按照預(yù)設(shè)的順序建立索引樹(shù),用特定順序的索引樹(shù)對(duì)索引值進(jìn)行存儲(chǔ),便于數(shù)據(jù)的查詢。系統(tǒng)通過(guò)接收用戶輸入的索引項(xiàng),確定輸入的索引項(xiàng)對(duì)應(yīng)的索引樹(shù),在確定的索引樹(shù)中按照一定的順序?qū)δ繕?biāo)數(shù)據(jù)進(jìn)行查詢。與現(xiàn)有技術(shù)相比,本方案使用索引按照預(yù)設(shè)順序進(jìn)行數(shù)據(jù)查詢,使得數(shù)據(jù)查詢的效率得到很大的提高。對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備 所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)......”限定的要素,并不排
除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。以上對(duì)本發(fā)明實(shí)施例所提供的基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法和裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法,其特征在于,在所述數(shù)據(jù)庫(kù)中創(chuàng)建基于鍵-值的數(shù)據(jù)表,將所述數(shù)據(jù)表的至少一個(gè)數(shù)據(jù)項(xiàng)確定為所述數(shù)據(jù)表的索引項(xiàng);將所述數(shù)據(jù)表中的索引項(xiàng)對(duì)應(yīng)的索引值作為節(jié)點(diǎn),依照預(yù)設(shè)順序建立與所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù); 所述方法包括 根據(jù)接收到的用戶輸入的查詢索引項(xiàng),確定目標(biāo)索引樹(shù); 根據(jù)用戶針對(duì)所述查詢索引項(xiàng)輸入的查詢索引值表達(dá)式,在所述確定的目標(biāo)索引樹(shù)中查詢目標(biāo)數(shù)據(jù),所述索引表達(dá)式表示一定范圍的索引值。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述方法還包括 在所述數(shù)據(jù)庫(kù)中添加任一數(shù)據(jù)條目后,根據(jù)所述數(shù)據(jù)條目的索引項(xiàng)對(duì)應(yīng)的索引值,按照所述預(yù)設(shè)順序在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)上增加一個(gè)節(jié)點(diǎn); 在所述增加的節(jié)點(diǎn)上保存所述索弓I項(xiàng)對(duì)應(yīng)的索引值; 更新增加節(jié)點(diǎn)后的索引樹(shù)。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述方法還包括 在所述數(shù)據(jù)庫(kù)中刪除任一數(shù)據(jù)條目后,在所述數(shù)據(jù)條目的索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,按照預(yù)設(shè)順序查找所述索引項(xiàng)的索引值對(duì)應(yīng)的節(jié)點(diǎn); 在所述索弓I項(xiàng)對(duì)應(yīng)的索引樹(shù)中,將所述節(jié)點(diǎn)刪除; 更新刪除所述節(jié)點(diǎn)后的索引樹(shù)。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述方法還包括 在所述數(shù)據(jù)庫(kù)中修改任一數(shù)據(jù)條目后,在修改了所述數(shù)據(jù)條目中索引項(xiàng)對(duì)應(yīng)的索引值時(shí),確定修改了索引值的索引項(xiàng); 在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,按照預(yù)設(shè)順序查找所述修改的索引值對(duì)應(yīng)的節(jié)點(diǎn); 在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,修改所述節(jié)點(diǎn)對(duì)應(yīng)的值; 更新修改所述節(jié)點(diǎn)對(duì)應(yīng)的值后的索引樹(shù)。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述根據(jù)用戶針對(duì)所述查詢索引項(xiàng)輸入的查詢索引值表達(dá)式,在所述確定的目標(biāo)索引樹(shù)中查詢目標(biāo)數(shù)據(jù),具體為, 根據(jù)用戶輸入的查詢索引表達(dá)式,在利用相對(duì)地址查詢所述目標(biāo)索引樹(shù)后,查詢到目標(biāo)數(shù)據(jù),所述索引表達(dá)式為表示一定范圍的所述索引項(xiàng)對(duì)應(yīng)的索引值的表達(dá)式。
6.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述數(shù)據(jù)庫(kù)中的任一數(shù)據(jù)項(xiàng)所占用內(nèi)存大小為可變的。
7.根據(jù)權(quán)利要求I所述的方法,其特征在于,為所述數(shù)據(jù)庫(kù)中的任一數(shù)據(jù)項(xiàng)分配固定內(nèi)存,所述方法還包括 創(chuàng)建所述數(shù)據(jù)表的內(nèi)存分配表,所述內(nèi)存分配表用于存儲(chǔ)任一數(shù)據(jù)項(xiàng)的相對(duì)于所述固定內(nèi)存的內(nèi)存剩余情況; 依據(jù)所述內(nèi)存剩余情況回收所述數(shù)據(jù)項(xiàng)的剩余內(nèi)存。
8.一種基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢裝置,其特征在于,所述裝置包括 第一創(chuàng)建模塊,用于在所述數(shù)據(jù)庫(kù)中創(chuàng)建基于鍵-值的數(shù)據(jù)表; 第一確定模塊,用于將所述建表模塊創(chuàng)建的數(shù)據(jù)表的至少一個(gè)數(shù)據(jù)項(xiàng)確定為所述數(shù)據(jù)表的索引項(xiàng); 第二創(chuàng)建模塊;用于將所述數(shù)據(jù)表中的索引項(xiàng)對(duì)應(yīng)的索引值作為節(jié)點(diǎn),依照預(yù)設(shè)順序建立與所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù); 第二確定模塊,用于根據(jù)接收到的用戶輸入的查詢索引項(xiàng),確定目標(biāo)索引樹(shù); 第一查詢模塊,用于根據(jù)用戶針對(duì)所述查詢索引項(xiàng)輸入的查詢索引值表達(dá)式,在所述確定的目標(biāo)索引樹(shù)中查詢目標(biāo)數(shù)據(jù),所述索引表達(dá)式表示一定范圍的索引值。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括 增加模塊,用于在所述數(shù)據(jù)庫(kù)中添加任一數(shù)據(jù)條目后,根據(jù)所述數(shù)據(jù)條目的索引項(xiàng)對(duì)應(yīng)的索引值,按照所述預(yù)設(shè)順序在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)上增加一個(gè)節(jié)點(diǎn); 第一保存模塊,用于在所述增加的節(jié)點(diǎn)上保存所述索引項(xiàng)對(duì)應(yīng)的索引值; 第一更新模塊,用于更新增加節(jié)點(diǎn)后的索引樹(shù)。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括 第二查詢模塊,用于在所述數(shù)據(jù)庫(kù)中刪除任一數(shù)據(jù)條目后,在所述數(shù)據(jù)條目的索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,按照預(yù)設(shè)順序查詢所述索引項(xiàng)的索引值對(duì)應(yīng)的節(jié)點(diǎn); 刪除模塊,用于在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,將所述節(jié)點(diǎn)刪除; 第二更新模塊,用于更新刪除所述節(jié)點(diǎn)后的索引樹(shù)。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括 第三確定模塊,用于在所述數(shù)據(jù)庫(kù)中修改任一數(shù)據(jù)條目后,在修改了所述數(shù)據(jù)條目中索引項(xiàng)對(duì)應(yīng)的索引值時(shí),確定修改了索引值的索引項(xiàng); 第三查詢模塊,用于在所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù)中,按照預(yù)設(shè)順序查找所述修改的索引值對(duì)應(yīng)的節(jié)點(diǎn); 修改模塊,用于在所述索弓I項(xiàng)對(duì)應(yīng)的索引樹(shù)中,修改所述節(jié)點(diǎn)對(duì)應(yīng)的值; 第三更新模塊,用于更新修改所述節(jié)點(diǎn)對(duì)應(yīng)的值后的索引樹(shù)。
全文摘要
本發(fā)明實(shí)施例公開(kāi)了一種基于索引的數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法和裝置,該方法具體為在所述數(shù)據(jù)庫(kù)中創(chuàng)建基于鍵-值的數(shù)據(jù)表,將所述數(shù)據(jù)表的至少一個(gè)數(shù)據(jù)項(xiàng)確定為所述數(shù)據(jù)表的索引項(xiàng);將所述數(shù)據(jù)表中的索引項(xiàng)對(duì)應(yīng)的索引值作為節(jié)點(diǎn),依照預(yù)設(shè)順序建立與所述索引項(xiàng)對(duì)應(yīng)的索引樹(shù);根據(jù)接收到的用戶輸入的查詢索引項(xiàng),確定目標(biāo)索引樹(shù);根據(jù)用戶針對(duì)所述查詢索引項(xiàng)輸入的查詢索引值表達(dá)式,在所述確定的目標(biāo)索引樹(shù)中查詢目標(biāo)數(shù)據(jù),所述索引表達(dá)式表示一定范圍的索引值。本發(fā)明使用索引按照預(yù)設(shè)順序進(jìn)行數(shù)據(jù)查詢,使得數(shù)據(jù)查詢的效率得到很大的提高。
文檔編號(hào)G06F17/30GK102915382SQ20121047601
公開(kāi)日2013年2月6日 申請(qǐng)日期2012年11月21日 優(yōu)先權(quán)日2012年11月21日
發(fā)明者繆治中 申請(qǐng)人:亞信聯(lián)創(chuàng)科技(中國(guó))有限公司