數據庫的數據操作請求的處理方法和系統(tǒng)的制作方法
【專利說明】
【技術領域】
[0001]本發(fā)明涉及數據庫技術領域,特別涉及一種數據庫的數據操作請求的處理方法和系統(tǒng)。
【【背景技術】】
[0002]數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫。隨著信息技術和市場的發(fā)展數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。數據庫有很多種類型,從最簡單的存儲各種數據表格的數據庫到能夠進行海量數據存儲的大型數據庫系統(tǒng)都在各個方面得到了廣泛的應用。按照存儲的數據的組織形式,數據庫的種類可分為層次型數據庫、網絡型數據庫和關系型數據庫。目前應用較為廣泛的數據庫包括 DB2、Oracle Informix、Sybase、SQL Server 和 mySQL 等。
[0003]用戶可以對數據庫中的數據進行新增、截取、更新、刪除等操作。然而,數據庫針對用戶的數據操作請求做出的響應速度,隨著數據庫存儲的數據量的增大而延長,尤其是當數據庫要處理海量的數據操作請求時,響應速度就更慢了。
【
【發(fā)明內容】
】
[0004]基于此,有必要提供一種可提高對數據庫的數據操作請求的響應速度的數據庫的數據操作請求的處理方法和系統(tǒng)。
[0005]一種數據庫的數據操作請求的處理方法,包括以下步驟:
[0006]接收對指定數據表的寫數據請求,所述寫數據請求中包括關鍵字以及關鍵字對應的更新內容;
[0007]在所述數據表對應的存儲于內存的哈希表中查找所述寫數據請求中包括的關鍵字;
[0008]若在所述哈希表中查找到所述寫數據請求中包括的關鍵字,則在所述哈希表中根據所述更新內容修改所述寫數據請求中包括的關鍵字對應的記錄;
[0009]生成可實現(xiàn)對所述哈希表的操作的SQL語句,將所述SQL語句插入到所述數據表的更新語句隊列中;
[0010]向發(fā)送所述寫數據請求的請求方返回處理結果。
[0011]在其中一個實施例中,所述方法還包括:
[0012]若未在所述哈希表中查找到所述寫數據請求中包括的關鍵字,則在存儲于數據庫的所述數據表中查找所述寫數據請求中包括的關鍵字;
[0013]若在所述數據表中查找到所述寫數據請求中包括的關鍵字,則讀取所述數據表中與所述寫數據請求中包括的關鍵字對應的值,將所述寫數據請求中包括的關鍵字以及所述對應的值寫入所述哈希表中,并在所述哈希表中根據所述更新內容修改所述寫數據請求中包括的關鍵字對應的記錄;
[0014]若未在所述數據表中查找到所述寫數據請求中包括的關鍵字,則根據所述更新內容生成所述寫數據請求中包括的關鍵字對應的值,將所述寫數據請求中包括的關鍵字以及所述生成的值寫入所述哈希表中。
[0015]在其中一個實施例中,所述方法還包括:
[0016]在所述生成可實現(xiàn)對所述哈希表的操作的SQL語句之后,將所述SQL語句寫入到日志文件中;
[0017]根據所述更新語句隊列修改所述數據表;
[0018]當所述更新語句隊列中的SQL語句被破壞后,根據所述日志文件修改所述數據表。
[0019]在其中一個實施例中,所述方法還包括:
[0020]接收對指定數據表的讀數據請求,所述讀數據請求中包括關鍵字;
[0021]在所述數據表對應的存儲于內存的哈希表中查找所述讀數據請求中包括的關鍵字;
[0022]若在所述哈希表中查找到所述讀數據請求中包括的關鍵字,則在所述哈希表中讀取所述讀數據請求中包括的關鍵字對應的值;
[0023]根據所述對應的值向發(fā)送所述讀數據請求的請求方返回處理結果。
[0024]在其中一個實施例中,所述方法還包括:
[0025]若未在所述哈希表中查找到所述讀數據請求中包括的關鍵字,則在存儲于數據庫的所述數據表中查找所述讀數據請求中包括的關鍵字;
[0026]若在所述數據表中查找到所述讀數據請求中包括的關鍵字,則讀取所述數據表中與所述讀數據請求中包括的關鍵字對應的值,將所述寫數據請求中包括的關鍵字以及所述對應的值寫入所述哈希表中,根據所述對應的值向發(fā)送所述讀數據請求的請求方返回處理結果。
[0027]若未在所述數據表中查找到所述讀數據請求中包括的關鍵字,則向發(fā)送所述讀數據請求的請求方返回表示查找失敗的結果。
[0028]一種數據庫的數據操作請求的處理系統(tǒng),包括:
[0029]請求獲取模塊,用于接收對指定數據表的寫數據請求,所述寫數據請求中包括關鍵字以及關鍵字對應的更新內容;
[0030]哈希表查找模塊,用于在所述數據表對應的存儲于內存的哈希表中查找所述寫數據請求中包括的關鍵字;
[0031]哈希表更新模塊,用于若在所述哈希表中查找到所述寫數據請求中包括的關鍵字,則在所述哈希表中根據所述更新內容修改所述寫數據請求中包括的關鍵字對應的記錄;
[0032]SQL語句生成模塊,用于生成可實現(xiàn)對所述哈希表的操作的SQL語句;
[0033]隊列寫入模塊,用于將所述SQL語句插入到所述數據表的更新語句隊列中;
[0034]寫結果返回模塊,用于向發(fā)送所述寫數據請求的請求方返回處理結果。
[0035]在其中一個實施例中,所述系統(tǒng)還包括:
[0036]數據表查找模塊,用于若未在所述哈希表中查找到所述寫數據請求中包括的關鍵字,則在存儲于數據庫的所述數據表中查找所述寫數據請求中包括的關鍵字;
[0037]數據表讀取模塊,用于若在所述數據表中查找到所述寫數據請求中包括的關鍵字,則讀取所述數據表中與所述寫數據請求中包括的關鍵字對應的值;
[0038]所述哈希表更新模塊還用于將所述寫數據請求中包括的關鍵字以及所述對應的值寫入所述哈希表中,并在所述哈希表中根據所述更新內容修改所述寫數據請求中包括的關鍵字對應的記錄;
[0039]所述哈希表更新模塊還用于若未在所述數據表中查找到所述寫數據請求中包括的關鍵字,則根據所述更新內容生成所述寫數據請求中包括的關鍵字對應的值,將所述寫數據請求中包括的關鍵字以及所述生成的值寫入所述哈希表中。
[0040]在其中一個實施例中,所述系統(tǒng)還包括:
[0041]日志文件寫入模塊,用于在所述生成可實現(xiàn)對所述哈希表的操作的SQL語句之后,將所述SQL語句寫入到日志文件中;
[0042]第一數據表更新模塊,用于根據所述更新語句隊列修改所述數據表;
[0043]第二數據表更新模塊,用于當所述更新語句隊列中的SQL語句被破壞后,根據所述日志文件修改所述數據表。
[0044]在其中一個實施例中,所述請求獲取模塊還用于接收對指定數據表的讀數據請求,所述讀數據請求中包括關鍵字;
[0045]所述哈希表查找模塊還用于在所述數據表對應的存儲于內存的哈希表中查找所述讀數據請求中包括的關鍵字;
[0046]所述系統(tǒng)還包括:
[0047]哈希表讀取模塊,用于若在所述哈希表中查找到所述讀數據請求中包括的關鍵字,則在所述哈希表中讀取與所述讀數據請求中包括的關鍵字對應的值;
[0048]讀結果返回模塊,用于根據所述對應的值向發(fā)送所述讀數據請求的請求方返回數據讀取結果。
[0049]在其中一個實施例中,所述數據表查找模塊還用于若未在所述哈希表中查找到所述讀數據請求中包括的關鍵字,則在存儲于數據庫的所述數據表中查找所述讀數據請求中包括的關鍵字;
[0050]所述數據表讀取模塊還用于若在所述數據表中查找到所述讀數據請求中包括的關鍵字,則讀取所述數據表中與所述讀數據請求中包括的關鍵字對應的值;
[0051]所述哈希表更新模塊還用于將所述讀數據請求中包括的關鍵字以及所述對應的值寫入所述哈希表中;
[0052]所述讀結果返回模塊還用于根據所述對應的值向發(fā)送所述讀數據請求的請求方返回處理結果。
[0053]上述數據庫的數據操作請求的處理方法和系統(tǒng),在獲取到對指定數據表的寫數據請求后,在指定數據表對應的存儲于內存的哈希表中查找寫數據請求中包括的關鍵字,若查找到,則在哈希表中對關鍵字對應的值進行相應的更新,為了保證存儲于內存的哈希表與存儲于數據庫的數據表的數據一致性,生成可實現(xiàn)對哈希表的操作的SQL語句,將該SQL語句插入到指定數據表的更新語句隊列中,以方便后續(xù)對指定數據表進行與哈希表相同的操作;上述方法和系統(tǒng),可在指定數據表對應的存儲于內存的哈希表中進行相應的數據更新操作之后,而不需要在存儲于數據庫的數據表中進行該數據更新操作之后,即可向請求方返回處理結果,由于對存儲于內存的哈希表進行數據更新操作的速度遠遠大于對存儲于數據庫的數據表進行數據更新操作的速度,因此,可大大提高對數據庫的數據操作請求的響應速度。
【【附圖說明】】
[0054]圖1為一個實施例中的數據庫的數據操作請求的處理方法的流程示意圖;
[0055]圖2為一個實施例中的數據庫的數據操作請求的處理方法的流程示意圖;
[0056]圖3A