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ù)保護(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
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。