• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    數(shù)據(jù)庫表索引的實(shí)現(xiàn)方法和裝置制造方法及圖紙

    技術(shù)編號(hào):15690922 閱讀:73 留言:0更新日期:2017-06-24 03:42
    本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)庫表索引的實(shí)現(xiàn)方法,所述數(shù)據(jù)庫表包括至少一個(gè)用來建立索引的摘要列,每個(gè)摘要列對(duì)應(yīng)于一個(gè)數(shù)據(jù)庫表中的引用列,所述方法包括:獲取數(shù)據(jù)庫表中摘要列和引用列的對(duì)應(yīng)關(guān)系;當(dāng)在數(shù)據(jù)庫表中新增記錄時(shí),在該記錄中與引用列對(duì)應(yīng)的摘要列保存該引用列值的摘要值;當(dāng)對(duì)數(shù)據(jù)庫表的操作以引用列及其列值為條件時(shí),將條件中的引用列替換為對(duì)應(yīng)的摘要列,將條件中的引用列值替換為所述引用列值的摘要值后,進(jìn)行該操作。通過本申請(qǐng)的技術(shù)方案,即使引用列的長(zhǎng)度超過最大索引長(zhǎng)度,也能夠建立索引來加快數(shù)據(jù)操作速度,并且不會(huì)因限制列長(zhǎng)度損失業(yè)務(wù)數(shù)據(jù)的完整性,在建立的索引為唯一性索引時(shí)還能夠避免數(shù)據(jù)庫表中出現(xiàn)重復(fù)的記錄。

    Method and device for implementing database table index

    The invention provides a method for realizing the database table index, the database table includes at least one abstract used to create the index columns, each column corresponds to the column in a database table, the method comprises: obtaining a database table column and column of the relationship; when a new record in the database table, the record included in the corresponding abstract and reference column holds the reference value of the column value; when the database table to column and column values for the reference conditions, conditions in the column to replace the corresponding summary column, will refer to conditions in the column value is replaced by the column value of the abstract value, to carry out the operation. Through the technical scheme of the application, even if the column length exceeds the maximum length of the index, it is possible to establish the index to accelerate the speed of operation and data integrity, not due to loss of business data column length limit, in the establishment of the index as the only index also can avoid the database table in duplicate records.

    【技術(shù)實(shí)現(xiàn)步驟摘要】
    數(shù)據(jù)庫表索引的實(shí)現(xiàn)方法和裝置
    本申請(qǐng)涉及數(shù)據(jù)處理
    ,尤其涉及一種數(shù)據(jù)庫表索引的實(shí)現(xiàn)方法和裝置。
    技術(shù)介紹
    隨著技術(shù)的發(fā)展,各種網(wǎng)絡(luò)應(yīng)用日漸深入人們的生活。這些應(yīng)用的業(yè)務(wù)系統(tǒng)需要使用和管理日益增加的各種業(yè)務(wù)數(shù)據(jù),來完成其業(yè)務(wù)過程。業(yè)務(wù)數(shù)據(jù)通常以表的結(jié)構(gòu)存放在數(shù)據(jù)庫中,為了加快對(duì)表中數(shù)據(jù)的訪問速度,可以在數(shù)據(jù)庫表中建立索引。索引是對(duì)數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu),采用索引查找表中的記錄(行)能夠基于特定的算法來進(jìn)行,而不必進(jìn)行全表掃描,有助于更快的獲取信息。唯一性索引還可以用來確保索引列不包含重復(fù)的值,例如多列唯一性索引可以確保索引列中每個(gè)值組合都是唯一的。一些中小型的數(shù)據(jù)庫對(duì)索引的長(zhǎng)度做出了限制,例如,MySQL(一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng))數(shù)據(jù)庫中,采用MyISAM存儲(chǔ)引擎的表的最大索引長(zhǎng)度是1000字節(jié),采用InnoDB存儲(chǔ)引擎的表的最大索引長(zhǎng)度是3072字節(jié)。而很多業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫表中包括長(zhǎng)度超過最大索引長(zhǎng)度的列,例如用來保存KV(Key-Value,鍵-值)結(jié)構(gòu)或JSON(JavaScriptObjectNotation,JavaScript對(duì)象表示法)序列化字符串的列。現(xiàn)有技術(shù)中,對(duì)具有索引長(zhǎng)度限制的數(shù)據(jù)庫表,只能對(duì)長(zhǎng)度不超過最大索引長(zhǎng)度的列建立索引。當(dāng)用來建立索引的列可能超過最大索引長(zhǎng)度時(shí),只能對(duì)該列的值進(jìn)行限制,這樣會(huì)造成業(yè)務(wù)信息的損失,在一些情況下甚至難以滿足業(yè)務(wù)上的要求;如果不損失業(yè)務(wù)信息,就只能接受查詢速度下降,業(yè)務(wù)響應(yīng)遲滯的結(jié)果;對(duì)需要以超過最大索引長(zhǎng)度的列來建立唯一性索引的應(yīng)用場(chǎng)景,無法建立索引造成多條相同的記錄保存在數(shù)據(jù)庫表中。
    技術(shù)實(shí)現(xiàn)思路
    有鑒于此,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)庫表索引的實(shí)現(xiàn)方法,所述數(shù)據(jù)庫表包括至少一個(gè)用來建立索引的摘要列,每個(gè)摘要列對(duì)應(yīng)于一個(gè)所述數(shù)據(jù)庫表中的引用列,所述方法包括:獲取所述數(shù)據(jù)庫表中摘要列和引用列的對(duì)應(yīng)關(guān)系;當(dāng)在所述數(shù)據(jù)庫表中新增記錄時(shí),在所述記錄中與引用列對(duì)應(yīng)的摘要列保存所述引用列值的摘要值;當(dāng)對(duì)所述數(shù)據(jù)庫表的操作以引用列及其列值為條件時(shí),將條件中的引用列替換為對(duì)應(yīng)的摘要列,將條件中的引用列值替換為所述引用列值的摘要值后,進(jìn)行所述操作。本申請(qǐng)還提供了一種數(shù)據(jù)庫表索引的實(shí)現(xiàn)裝置,所述數(shù)據(jù)庫表包括至少一個(gè)用來建立索引的摘要列,每個(gè)摘要列對(duì)應(yīng)于一個(gè)所述數(shù)據(jù)庫表中的引用列,所述裝置包括:對(duì)應(yīng)關(guān)系獲取單元,用于獲取所述數(shù)據(jù)庫表中摘要列和引用列的對(duì)應(yīng)關(guān)系;新增記錄處理單元,用于當(dāng)在所述數(shù)據(jù)庫表中新增記錄時(shí),在所述記錄中與引用列對(duì)應(yīng)的摘要列保存所述引用列值的摘要值;條件操作處理單元,用于當(dāng)對(duì)所述數(shù)據(jù)庫表的操作以引用列及其列值為條件時(shí),將條件中的引用列替換為對(duì)應(yīng)的摘要列,將條件中的引用列值替換為所述引用列值的摘要值后,進(jìn)行所述操作。由以上技術(shù)方案可見,本申請(qǐng)的實(shí)施例中,在數(shù)據(jù)庫表中增加對(duì)應(yīng)于引用列的摘要列,用來保存引用列值的摘要值,采用摘要列來生成索引,并在對(duì)數(shù)據(jù)庫表進(jìn)行以引用列及其列值為條件的操作時(shí),將其替換為以對(duì)應(yīng)的摘要列及其列值為條件,這樣即使引用列的長(zhǎng)度超過最大索引長(zhǎng)度,也能夠建立索引來加快數(shù)據(jù)操作速度和業(yè)務(wù)響應(yīng)速度,并且不會(huì)因限制列長(zhǎng)度損失業(yè)務(wù)數(shù)據(jù)的完整性,在建立的索引為唯一性索引時(shí)還能夠避免數(shù)據(jù)庫表中出現(xiàn)重復(fù)的記錄。附圖說明圖1是業(yè)務(wù)系統(tǒng)訪問數(shù)據(jù)庫的第一種方式的網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖2是業(yè)務(wù)系統(tǒng)訪問數(shù)據(jù)庫的第二種方式的網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖3是本申請(qǐng)實(shí)施例中一種數(shù)據(jù)庫表索引的實(shí)現(xiàn)方法的流程圖;圖4是運(yùn)行本申請(qǐng)實(shí)施例的設(shè)備的一種硬件結(jié)構(gòu)圖;圖5是本申請(qǐng)實(shí)施例中一種數(shù)據(jù)庫表索引的實(shí)現(xiàn)裝置的邏輯結(jié)構(gòu)圖。具體實(shí)施方式本申請(qǐng)的實(shí)施例提出一種新的數(shù)據(jù)庫表索引的實(shí)現(xiàn)方法,對(duì)列長(zhǎng)度可能超過最大索引長(zhǎng)度的引用列,在數(shù)據(jù)庫表中增加對(duì)應(yīng)的摘要列,以引用列值的摘要值作為摘要列的值,采用摘要列而非引用列即可建立滿足長(zhǎng)度限制條件的索引,不僅能夠通過該索引提升對(duì)表數(shù)據(jù)的操作速度,而且無需縮減引用列中的業(yè)務(wù)數(shù)據(jù),從而解決現(xiàn)有技術(shù)中的問題。業(yè)務(wù)系統(tǒng)通常通過兩種方式來對(duì)數(shù)據(jù)庫進(jìn)行訪問,第一種方式如圖1所示,業(yè)務(wù)系統(tǒng)通過數(shù)據(jù)庫中間件來對(duì)數(shù)據(jù)庫表進(jìn)行操作,添加、刪除、更新、查詢其中的業(yè)務(wù)數(shù)據(jù);第二種方式如圖2所示,業(yè)務(wù)系統(tǒng)直接訪問數(shù)據(jù)庫,在這種方式中,通常業(yè)務(wù)系統(tǒng)的實(shí)現(xiàn)包括業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層,其中業(yè)務(wù)邏輯層用來實(shí)現(xiàn)業(yè)務(wù)過程,并通過數(shù)據(jù)訪問層來操作數(shù)據(jù)庫表。在第一種方式中,本申請(qǐng)的實(shí)施例應(yīng)用在數(shù)據(jù)庫中間件上,業(yè)務(wù)系統(tǒng)無需更改現(xiàn)有的對(duì)數(shù)據(jù)庫表的操作;在第二種方式中,本申請(qǐng)的實(shí)施例應(yīng)用在數(shù)據(jù)訪問層,類似的,業(yè)務(wù)邏輯層無需修改現(xiàn)有實(shí)現(xiàn)即可完成對(duì)數(shù)據(jù)庫表的操作。根據(jù)實(shí)際應(yīng)用中業(yè)務(wù)系統(tǒng)和數(shù)據(jù)庫的具體實(shí)現(xiàn),本申請(qǐng)的實(shí)施例也可以應(yīng)用在其他具有數(shù)據(jù)庫訪問控制功能的邏輯單位、服務(wù)或系統(tǒng)中,不做限定。以下將應(yīng)用本申請(qǐng)實(shí)施例的邏輯單位、服務(wù)或系統(tǒng)統(tǒng)稱為訪問控制功能模塊,將通過訪問控制功能模塊進(jìn)行數(shù)據(jù)庫表操作的邏輯單位、服務(wù)或系統(tǒng)統(tǒng)稱為業(yè)務(wù)功能模塊。本申請(qǐng)的實(shí)施例可以運(yùn)行在任何具有計(jì)算和存儲(chǔ)能力的設(shè)備上,例如可以是手機(jī)、平板電腦、PC(PersonalComputer,個(gè)人電腦)、筆記本、服務(wù)器、虛擬機(jī)等物理設(shè)備或邏輯設(shè)備;也可以由兩個(gè)或兩個(gè)以上分擔(dān)不同職責(zé)的物理或邏輯設(shè)備、相互協(xié)同來實(shí)現(xiàn)本申請(qǐng)實(shí)施例中的各項(xiàng)功能。本申請(qǐng)的實(shí)施例中,將數(shù)據(jù)庫表中列長(zhǎng)度可能超過索引最大長(zhǎng)度、并且在業(yè)務(wù)過程中需要根據(jù)列值查詢數(shù)據(jù)庫表記錄的列作為引用列,還可以根據(jù)實(shí)際場(chǎng)景的具體情況將數(shù)據(jù)庫表中其他會(huì)用來查詢記錄的列作為引用列。一個(gè)數(shù)據(jù)庫表中可以有一個(gè)到多個(gè)引用列。在確定引用列后,在數(shù)據(jù)庫表中為每個(gè)引用列增加一個(gè)對(duì)應(yīng)的摘要列,摘要列用來存儲(chǔ)對(duì)應(yīng)的引用列的摘要值,即:每個(gè)數(shù)據(jù)庫表記錄的摘要列值為該記錄對(duì)應(yīng)的引用列值的摘要值,其中,摘要值是將引用列值輸入預(yù)定的摘要算法后得到的結(jié)果。本申請(qǐng)實(shí)施例對(duì)摘要算法的選擇不做限定,例如,各種版本的CRC(CyclicRedundancyCheck,循環(huán)冗余校驗(yàn))、MD(Message-DigestAlgorithm,消息摘要算法)、SHA(SecureHashAlgorithm,安全哈希算法)等。當(dāng)有超過一個(gè)的摘要列用來生成多列索引、或某個(gè)摘要列與其他列用來生成多列索引時(shí),要選擇使用于生成某個(gè)索引的所有摘要列和其他列的列長(zhǎng)度總和小于所在數(shù)據(jù)庫表最大索引長(zhǎng)度的摘要算法。摘要算法用來根據(jù)一定的運(yùn)算規(guī)則對(duì)輸入數(shù)據(jù)進(jìn)行某種形式的提取,提出的內(nèi)容即為摘要數(shù)據(jù),摘要數(shù)據(jù)與輸入數(shù)據(jù)有密切聯(lián)系,只要輸入數(shù)據(jù)稍有改變,摘要數(shù)據(jù)便完全不同。這樣,以引用列值查詢數(shù)據(jù)庫表,和以引用列值的摘要值查詢數(shù)據(jù)庫表,在數(shù)據(jù)庫表的容量范圍內(nèi)基本可以得到完全相同的查詢結(jié)果,因此,可以用摘要列替代對(duì)應(yīng)的引用列來建立索引,以引用列值的摘要值來使用索引,從而避免因列長(zhǎng)度超過索引長(zhǎng)度限制而導(dǎo)致數(shù)據(jù)庫訪問速度下降。需要說明的是,在數(shù)據(jù)庫表中增加的摘要列可以對(duì)業(yè)務(wù)功能模塊不可見,換言之,業(yè)務(wù)功能模塊只要按照現(xiàn)有的方式進(jìn)行數(shù)據(jù)庫表中業(yè)務(wù)數(shù)據(jù)的操作即可,而無需了解數(shù)據(jù)庫表中是否有摘要列、以及是否需要使用由摘要列建立的索引。訪問控制功能模塊可以參照現(xiàn)有技術(shù)來在數(shù)據(jù)庫表中添加摘要列,并給基于包括摘要列在內(nèi)的一個(gè)到多個(gè)列建立索引(也可以由人工完成本文檔來自技高網(wǎng)
    ...
    數(shù)據(jù)庫表索引的實(shí)現(xiàn)方法和裝置

    【技術(shù)保護(hù)點(diǎn)】
    一種數(shù)據(jù)庫表索引的實(shí)現(xiàn)方法,其特征在于,所述數(shù)據(jù)庫表包括至少一個(gè)用來建立索引的摘要列,每個(gè)摘要列對(duì)應(yīng)于一個(gè)所述數(shù)據(jù)庫表中的引用列,所述方法包括:獲取所述數(shù)據(jù)庫表中摘要列和引用列的對(duì)應(yīng)關(guān)系;當(dāng)在所述數(shù)據(jù)庫表中新增記錄時(shí),在所述記錄中與引用列對(duì)應(yīng)的摘要列保存所述引用列值的摘要值;當(dāng)對(duì)所述數(shù)據(jù)庫表的操作以引用列及其列值為條件時(shí),將條件中的引用列替換為對(duì)應(yīng)的摘要列,將條件中的引用列值替換為所述引用列值的摘要值后,進(jìn)行所述操作。

    【技術(shù)特征摘要】
    1.一種數(shù)據(jù)庫表索引的實(shí)現(xiàn)方法,其特征在于,所述數(shù)據(jù)庫表包括至少一個(gè)用來建立索引的摘要列,每個(gè)摘要列對(duì)應(yīng)于一個(gè)所述數(shù)據(jù)庫表中的引用列,所述方法包括:獲取所述數(shù)據(jù)庫表中摘要列和引用列的對(duì)應(yīng)關(guān)系;當(dāng)在所述數(shù)據(jù)庫表中新增記錄時(shí),在所述記錄中與引用列對(duì)應(yīng)的摘要列保存所述引用列值的摘要值;當(dāng)對(duì)所述數(shù)據(jù)庫表的操作以引用列及其列值為條件時(shí),將條件中的引用列替換為對(duì)應(yīng)的摘要列,將條件中的引用列值替換為所述引用列值的摘要值后,進(jìn)行所述操作。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取數(shù)據(jù)庫表中摘要列和引用列的對(duì)應(yīng)關(guān)系,包括:按照預(yù)定的摘要列發(fā)現(xiàn)規(guī)則,在所述數(shù)據(jù)庫表的元數(shù)據(jù)中發(fā)現(xiàn)摘要列與引用列的對(duì)應(yīng)關(guān)系。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述摘要列發(fā)現(xiàn)規(guī)則包括:摘要列的列名中包括預(yù)定摘要列標(biāo)志和所對(duì)應(yīng)的引用列列名,并被數(shù)據(jù)庫表的索引引用;摘要列的注釋中包括預(yù)定摘要列標(biāo)志和所對(duì)應(yīng)的引用列列名,并被數(shù)據(jù)庫表的索引引用;或,引用列的注釋中包括預(yù)定引用列標(biāo)志和所對(duì)應(yīng)的摘要列列名,并被數(shù)據(jù)庫表的索引引用。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取數(shù)據(jù)庫表中摘要列和引用列的對(duì)應(yīng)關(guān)系,包括:讀取預(yù)定的配置文件,所述配置文件中保存有所述數(shù)據(jù)庫表中摘要列和引用列的對(duì)應(yīng)關(guān)系。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述當(dāng)在數(shù)據(jù)庫表中新增記錄時(shí),在所述記錄中與引用列對(duì)應(yīng)的摘要列保存所述引用列值的摘要值,包括:修改插入記錄指令,在插入記錄指令中增加摘要列并以所述摘要列對(duì)應(yīng)的引用列值的摘要值作為其摘要列值,執(zhí)行修改后的插入記錄指令;或,執(zhí)行插入記錄指令在數(shù)據(jù)庫表中插入新增記錄,生成并執(zhí)行對(duì)所述新增記錄的更新指令,將所述新增記錄的摘要列值更新為與所述摘要列對(duì)應(yīng)的引用列值的摘要值。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:當(dāng)修改所述數(shù)據(jù)庫表中記錄的引用列值時(shí),將所述記錄中與所述引用列對(duì)應(yīng)的摘要列值更新為修改后引用列值的摘要值。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,當(dāng)修改所述數(shù)據(jù)庫表中記錄的引用列值時(shí),將所述記錄中與所述引用列對(duì)應(yīng)的摘要列值更新為修改后引用列值的摘要值,包括:修改對(duì)所述記錄的更新指令,在更新指令中增加與要修改列值的引用列對(duì)應(yīng)的摘要列,并以修改后引用列值的摘要值作為其摘要列值,執(zhí)行修改后的更新指令;或,執(zhí)行對(duì)所述記錄的更新指令,對(duì)所述記錄的引用列值進(jìn)行修改,生成并執(zhí)行對(duì)所述記錄的更新指令,將所述記錄中與被修改列值的引用列對(duì)應(yīng)的摘要列值更新為修改后引用列值的摘要值。8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)數(shù)據(jù)庫表的操作以引用列及其列值為條件,包括:對(duì)所述數(shù)據(jù)庫表的查詢指令、刪除指令或更新指令的條件中包括引用列及其列值。9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述摘要值采用循環(huán)冗余檢驗(yàn)CRC、消息摘要法MD...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:李偉
    申請(qǐng)(專利權(quán))人:阿里巴巴集團(tuán)控股有限公司
    類型:發(fā)明
    國(guó)別省市:開曼群島,KY

    網(wǎng)友詢問留言 已有0條評(píng)論
    • 還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 无码人妻一区二区三区免费看| 亚洲av无码不卡| 久久午夜夜伦鲁鲁片免费无码 | 日韩人妻无码精品久久免费一| 亚洲av无码一区二区三区天堂古代 | 久久久久久久无码高潮| 久久久g0g0午夜无码精品| 国精品无码一区二区三区在线蜜臀 | 久久无码AV中文出轨人妻 | 亚洲中文字幕伊人久久无码| 亚洲av福利无码无一区二区| 国产成人无码a区在线视频 | 亚洲午夜无码久久| 在线播放无码高潮的视频| 人妻丰满熟妇AV无码区免| 无码人妻品一区二区三区精99 | 八戒理论片午影院无码爱恋| 毛片无码一区二区三区a片视频| 午夜福利无码不卡在线观看| 最新国产AV无码专区亚洲| 精品久久久无码中字| 亚洲精品久久久久无码AV片软件| 亚洲爆乳精品无码一区二区三区| 粉嫩大学生无套内射无码卡视频 | 无码精品人妻一区二区三区免费看 | 国产乱子伦精品无码码专区| 粉嫩大学生无套内射无码卡视频 | 亚洲精品无码久久久久| 毛片亚洲AV无码精品国产午夜| 亚洲va成无码人在线观看| 亚洲动漫精品无码av天堂| 狠狠躁天天躁无码中文字幕图| 亚洲成av人片不卡无码久久| 成人免费无码视频在线网站| 亚洲精品无码久久久久牙蜜区| 中文无码精品A∨在线观看不卡| 国产a级理论片无码老男人| 亚洲精品无码鲁网中文电影| 亚洲AV无码国产在丝袜线观看| 亚洲va中文字幕无码久久| 亚洲AV无码国产精品麻豆天美|