欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)庫之間更新的方法及其裝置的制造方法

文檔序號:9929555閱讀:272來源:國知局
數(shù)據(jù)庫之間更新的方法及其裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領域,特別涉及數(shù)據(jù)庫之間更新的技術。
【背景技術】
[0002]對于以行為單位進行更新的一些在線數(shù)據(jù)庫,如果某一行的數(shù)據(jù)只有少量列的數(shù)據(jù)發(fā)生變化,在更新時需要將整行數(shù)據(jù)進行更新,這對于行數(shù)據(jù)量極大且在短時間內需更新的行數(shù)據(jù)較多的數(shù)據(jù)庫,例如一些電子商務業(yè)務相關的在線數(shù)據(jù)庫,其每時每刻都會有數(shù)據(jù)需要更新,而每行數(shù)據(jù)量有可能是幾兆甚至是幾十兆,會產生巨大的沖擊。并且,更新速度慢,需消耗大量的資源。如果發(fā)生導入不成功的情況,又需要拆分集群,造成大量的人力、資源浪費。

【發(fā)明內容】

[0003]本發(fā)明的目的在于提供一種數(shù)據(jù)庫之間更新的方法及其裝置,在數(shù)據(jù)庫的一行數(shù)據(jù)中僅有部分列的數(shù)據(jù)發(fā)生變化的情況下,只需更新發(fā)生變化的列的數(shù)據(jù),減少更新的數(shù)據(jù)量,有效提高數(shù)據(jù)庫的更新效率,減少資源和時間的浪費。
[0004]為解決上述技術問題,本發(fā)明的實施方式公開了一種數(shù)據(jù)庫之間更新的方法,包括以下步驟:
[0005]根據(jù)第一數(shù)據(jù)庫中的數(shù)據(jù)生成第三數(shù)據(jù)行,該第三數(shù)據(jù)行中至少一個列的數(shù)據(jù)為空操作符,該空操作符表示數(shù)據(jù)沒有變化;
[0006]根據(jù)第三數(shù)據(jù)行更新第二數(shù)據(jù)庫的第四數(shù)據(jù)行,其中,第三數(shù)據(jù)行中為空操作符的列不更新第四數(shù)據(jù)行的對應列,第三數(shù)據(jù)行中為非空操作符的列更新第四數(shù)據(jù)行的對應列。
[0007]本發(fā)明的實施方式還公開了一種數(shù)據(jù)庫之間更新的裝置,包括:
[0008]生成單元,用于根據(jù)第一數(shù)據(jù)庫中的數(shù)據(jù)生成第三數(shù)據(jù)行,該第三數(shù)據(jù)行中至少一個列的數(shù)據(jù)為空操作符,該空操作符表示數(shù)據(jù)沒有變化;
[0009]更新單元,用于根據(jù)第三數(shù)據(jù)行更新第二數(shù)據(jù)庫的第四數(shù)據(jù)行,其中,第三數(shù)據(jù)行中為空操作符的列不更新第四數(shù)據(jù)行的對應列,第三數(shù)據(jù)行中為非空操作符的列更新第四數(shù)據(jù)行的對應列。
[0010]本發(fā)明實施方式與現(xiàn)有技術相比,主要區(qū)別及其效果在于:
[0011]在數(shù)據(jù)庫的一行數(shù)據(jù)中僅有部分列的數(shù)據(jù)發(fā)生變化的情況下,無需將數(shù)據(jù)庫中的整行數(shù)據(jù)進行更新,只需通過空操作符更新發(fā)生變化的列的數(shù)據(jù),從而減少更新的數(shù)據(jù)量,在一行數(shù)據(jù)的數(shù)據(jù)量極大的情況下,能有效提高數(shù)據(jù)庫的更新效率,減少資源和時間的浪費,且在導入不成功的情況下,無需再次將整行導入,只需將非空操作符的列的數(shù)據(jù)進行更新,進一步節(jié)省資源。
[0012]進一步地,由于在一些網(wǎng)絡應用中,如電子商務平臺上在線數(shù)據(jù)庫的更新對實時性的要求更高,如果更新數(shù)據(jù)過大,則無法滿足這一要求,通過空操作符僅更新一行數(shù)據(jù)中發(fā)生變化的列的數(shù)據(jù),可有效提高在線數(shù)據(jù)庫更新的效率。
[0013]進一步地,通過SQL將需更新的數(shù)據(jù)行(即第三數(shù)據(jù)行)導入數(shù)據(jù)庫時,在需更新的數(shù)據(jù)行中數(shù)據(jù)發(fā)生變化的列不相同時,無需進行SQL的重新解析,可直接將整行數(shù)據(jù)導入數(shù)據(jù)庫,降低SQL硬解析耗費成本,提高數(shù)據(jù)庫的更新效率。
【附圖說明】
[0014]圖1是本發(fā)明第一實施方式中一種數(shù)據(jù)庫之間更新的方法的流程示意圖;
[0015]圖2是本發(fā)明一個優(yōu)選例中交易信息發(fā)生變化時數(shù)據(jù)庫之間更新的一個實例;
[0016]圖3是本發(fā)明第三實施方式中一種數(shù)據(jù)庫之間更新的裝置的結構示意圖。
【具體實施方式】
[0017]在以下的敘述中,為了使讀者更好地理解本申請而提出了許多技術細節(jié)。但是,本領域的普通技術人員可以理解,即使沒有這些技術細節(jié)和基于以下各實施方式的種種變化和修改,也可以實現(xiàn)本申請各權利要求所要求保護的技術方案。
[0018]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明的實施方式作進一步地詳細描述。
[0019]本發(fā)明第一實施方式涉及一種數(shù)據(jù)庫之間更新的方法。圖1是該數(shù)據(jù)庫之間更新的方法的流程示意圖。
[0020]如圖1所示,該數(shù)據(jù)庫之間更新的方法包括以下步驟:
[0021]在步驟101中,根據(jù)第一數(shù)據(jù)庫中的數(shù)據(jù)生成第三數(shù)據(jù)行,該第三數(shù)據(jù)行中至少一個列的數(shù)據(jù)為空操作符,該空操作符表示數(shù)據(jù)沒有變化。
[0022]此后進入步驟102,根據(jù)第三數(shù)據(jù)行更新第二數(shù)據(jù)庫的第四數(shù)據(jù)行,其中,第三數(shù)據(jù)行中為空操作符的列不更新第四數(shù)據(jù)行的對應列,第三數(shù)據(jù)行中為非空操作符的列更新第四數(shù)據(jù)行的對應列。
[0023]在上述更新過程中,如果遇到包括空操作符的列,直接跳過,不進行同一列的數(shù)據(jù)的更新。即使用第三數(shù)據(jù)行更新在線數(shù)據(jù)庫的第四數(shù)據(jù)行時,如果是空操作符則直接跳過相應列的處理,如果不是空操作符則以第三數(shù)據(jù)行中的數(shù)據(jù)更新第四數(shù)據(jù)行中相應列的數(shù)據(jù)。
[0024]此后結束本流程。
[0025]本發(fā)明中可使用SQL (Structured Query Languag,結構化查詢語言)完成在線數(shù)據(jù)庫的更新,也可調用API (Applicat1n Programming Interface,應用編程接口)函數(shù)完成在線數(shù)據(jù)庫的更新。在本發(fā)明的一優(yōu)選例中,上述步驟102包括以下子步驟:
[0026]使用結構化查詢語言的Update語句(SQL語言中用于修改表中的數(shù)據(jù)的標準語句)根據(jù)第三數(shù)據(jù)行整行更新第四數(shù)據(jù)行。其中,雖然實際只更新第三數(shù)據(jù)行中非空操作符的列,但該Update語句的參數(shù)中包括對第三數(shù)據(jù)行中每一個列的更新。例如,對于第一數(shù)據(jù)庫中的表格student (有10列,每列名稱分別為A、B、C、D、E、F、G、H、I和J),如果第η行的數(shù)據(jù)由(2,4,6,2,9,8,7,3,4,I)變化為(2,4,10,2,9,8,15,3,4,I),即只有第 3 列和第7列的數(shù)據(jù)發(fā)生了變化,則生成的第三數(shù)據(jù)行為(~b,~b,10,'b, 'b, ~b,15,'b, 'b, ~b),其中,~b表示空操作符;然后通過SQL語言的update語句更新第二數(shù)據(jù)庫中的第四數(shù)據(jù)行,其update語句為更新每個列的數(shù)據(jù)(即update語句的參數(shù)中包括第三數(shù)據(jù)行所有列的名稱),但是由于具有空操作符的列在更新是會被暫時跳過,因此,第四數(shù)據(jù)行中只有第3列和第7列的數(shù)據(jù)被更新,其他列的數(shù)據(jù)保持不變。
[0027]—種現(xiàn)有技術中,需要更新部分列時,在Update語句中只寫要更新的部分列的參數(shù)。如果要更新的數(shù)據(jù)表中每一行要更新的列都可能不同,則需要對每一行都寫一句Update語句,而每一個不同的Update語句在執(zhí)行之前都要先解析,這就導致SQL的解析的工作量很大。
[0028]另一種現(xiàn)有技術中,如果要減少SQL解析的工作量,也可以在Update語句中寫所有列的參數(shù),但這樣導致沒有變化的列也會被更新,雖然解析只要做一次,但Update語句的執(zhí)行的工作量很大。
[0029]可見現(xiàn)有技術使本領域的技術人員陷入一種兩難境地。如何既減少SQL解析的工作量,又減少Update語句執(zhí)行的工作量,這是一個挑戰(zhàn)。
[0030]本發(fā)明實施方式中,通過SQL將需更新的數(shù)據(jù)行(即第三數(shù)據(jù)行)導入數(shù)據(jù)庫時,雖然只希望更新發(fā)變化的列,但使用的Update語句的參數(shù)中包括第三數(shù)據(jù)行所有列的名稱(即名義是上對所有列進行更新),從而只要對該Update語句解析一次就可以用于所有要更新的行(雖然每一行實際要更新的列可能是不一樣的),無需進行SQL的重新解析,降低了 SQL硬解析耗費成本,提高數(shù)據(jù)庫的更新效率。同時,通過引入空操作符和相關的處理步驟,在SQL執(zhí)行時沒有數(shù)據(jù)更新的列被跳過,所以Update語句執(zhí)行的工作量遠小于現(xiàn)有技術。
[0031]而在本發(fā)明的另一優(yōu)選例中,上述步驟102包括以下子步驟:
[0032]調用在線數(shù)據(jù)庫的應用編程接口函數(shù)根據(jù)第三數(shù)據(jù)行整行更新第四數(shù)據(jù)行。
[0033]在數(shù)據(jù)庫的一行數(shù)據(jù)中僅有部分列的數(shù)據(jù)發(fā)生變化的情況下
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
台中市| 剑阁县| 建阳市| 旬阳县| 西畴县| 泰和县| 溆浦县| 泸溪县| 仪陇县| 文山县| 兴山县| 东源县| 定安县| 汾阳市| 晋城| 若尔盖县| 遂宁市| 拜城县| 项城市| 耒阳市| 专栏| 始兴县| 洪洞县| 沾益县| 鄱阳县| 芮城县| 商丘市| 宁德市| 维西| 启东市| 桦甸市| 栖霞市| 时尚| 台山市| 花垣县| 栖霞市| 南江县| 商都县| 阿克陶县| 鹤山市| 杭州市|