新四季網

一種利用緩存表來提高資料庫數據插入性能的方法

2023-06-24 06:47:06

專利名稱:一種利用緩存表來提高資料庫數據插入性能的方法
技術領域:
本發明涉及一種利用緩存表來提高資料庫數據插入性能的方法。
背景技術:
大型業務應用系統,一般都要將系統相關業務數據存儲到資料庫之中。在系統實際運行過程中,將同類型的新增業務數據寫入到資料庫對應的數據表中,數據表的數據存儲在伺服器的硬碟,硬碟的寫入性能影響了數據表的插入性能,當前硬碟的讀寫性能是伺服器各組件中最低的一部分,硬碟的讀寫性能成為資料庫數據表的插入性能的瓶頸。為了提高資料庫的插入效率,現有採用的技術方案有升級伺服器硬體或者批量插入。通過升級伺服器硬體(主要是硬碟)的方法,可以較簡單地實現資料庫插入性能的提升,但是提升範圍有限,且硬體開銷比較大,綜合性價比不高。批量插入是一種將多條待插入數據拼接成一條語句然後一次提交到資料庫執行的方法,可以不用升級硬體就獲取到較大的性能提升,但在系統新增業務數據量巨大,業務系統對該表讀取頻繁的情況下容易造成數據表被鎖住,從而引發頻繁、階段性的性能下降, 不利於系統的穩定。

發明內容
針對現有技術方案的不足,本發明提出一種利用緩存表來提高資料庫插入性能的方法,可以在不用升級硬體、避免造成資料庫死鎖的條件下大大提高資料庫的插入性能。本發明一種利用緩存表來提高資料庫數據插入性能的方法,首先建立兩個基於內存的資料庫緩存表,該緩存表與待最終插入的目的數據表的表結構相同;先將數據插入到第一緩存表中,待第一緩存表中的數據超過最大個數閾值後,再將第一緩存表的數據批量導入到目的數據表,在導入過程中,若有新的數據要插入資料庫,則將新的數據插入到第二緩存表中,待第二緩存表中的數據超過最大個數閾值後,再將該第二緩存表中的數據導入到目的數據表中,該第一或第二緩存表一旦將其中的數據導入至目的數據表中後,則所述的第一或第二緩存表立即清空;上述往第一或第二緩存表插入數據到最大個數閾值所需要的時間必須大於將該第一或第二緩存表中的數據導入到目的數據表所需時間。採用本發明的技術方案後,由於緩存表是建立在內存之上,所以該表的插入性能取決於內存的寫入性能,遠遠大於基於硬碟的數據表,只要在保證緩存表的容量夠大的前提下,則就可以獲取到近似於緩存表的數據插入性能。


圖1為本發明的流程示意圖。以下結合附圖和具體實施例對本發明作進一步詳述。
具體實施方式
本發明一種利用緩存表來提高資料庫數據插入性能的方法,首先建立兩個基於內存的資料庫緩存表,該緩存表與待最終插入的目的數據表的表結構相同,因為緩存表是建立在內存之上,所以該表的插入性能取決於內存的寫入性能,遠遠大於基於硬碟的數據表; 先將數據插入到第一緩存表中,待第一緩存表中的數據超過最大個數閾值後,再將第一緩存表的數據批量導入到目的數據表,在導入過程中,若有新的數據要插入資料庫,則將新的數據插入到第二緩存表中,待第二緩存表中的數據超過最大個數閾值後,再將該第二緩存表中的數據導入到目的數據表中,該第一或第二緩存表一旦將其中的數據導入至目的數據表中後,則所述的第一或第二緩存表立即清空;上述往第一或第二緩存表插入數據到最大個數閾值所需要的時間必須大於將該第一或第二緩存表中的數據導入到目的數據表所需時間。如圖1所示,本發明具體實現步驟如下
步驟1、選用MYSQL作為資料庫引擎來部署資料庫,創建業務系統資料庫BizDB ;
步驟2、在業務系統資料庫BizDB中創建以下數據表
目的數據表,表引擎選擇Mylsam,表結構中定義若干數據欄位;
建立基於內存的第一和第二資料庫緩存表,該緩存表的表結構與目的數據表相同;
步驟3、在業務系統資料庫BizDB中創建以下存儲過程
存儲過程1 參數為第一緩存表中各欄位,將各參數插入到第一緩存表中,然後返回第一緩存表的當前數據行數,如果插入失敗則返回0 ;
存儲過程2 參數為第二緩存表中各欄位,將各參數插入到第二緩存表中,然後返回第二緩存表的當前數據行數,如果插入失敗則返回0 ;
存儲過程3 參數為整型,限制為1或2,返回值BOOL型,根據參數將對應的緩存表中的數據存入目的數據表中,存成功後將原緩存表清空,並返回操作結果;
步驟4、創建業務程序,設置緩存表最大行數限制閾值,根據預先配置好的參數連接業務系統資料庫BizDB,初始化當前緩存表標誌位為1 ;
步驟5、等待待插入的業務數據,一旦接收到待插入的數據,則根據當前緩存表標誌位選擇待插入數據的存儲過程,如果當前緩存表標誌為1則執行步驟3中的存儲過程1,如果當前緩存表標誌位為2,則執行步驟3中的存儲過程2 ;
步驟6、執行插入數據的存儲過程,並判斷其返回值,如果返回值大於0且小於緩存表最大行數限制閾值,說明存儲過程執行成功,且緩存表數據未滿,執行步驟9,如果返回值為 0,執行步驟7,如果返回值大於緩存表最大行數限制閾值,執行步驟8 ; 步驟7、程序執行異常,進行相應的異常處理,並列印日誌,執行步驟9 ; 步驟8、若存儲過程返回值大於緩存表最大行數限制閾值,說明該緩存表中的數據已滿,切換緩存表標誌位,原來為1的改為2,原來為2的改為1,並執行存儲過程3,將數據已滿的所述緩存表中的數據導入到目的數據表中,執行步驟9 ;
步驟9、判斷是否結束數據插入,如果是則執行步驟10,如果否則執行步驟5 ; 步驟10、關閉資料庫連接,退出數據插入過程。以上所述,僅是本發明較佳實施例而已,並非對本發明的技術範圍作任何限制,故凡是依據本發明的技術實質對以上實施例所作的任何細微修改、等同變化與修飾,均仍屬於本發明技術方案的範圍內。
權利要求
1. 一種利用緩存表來提高資料庫數據插入性能的方法,其特徵在於 首先建立兩個基於內存的資料庫緩存表,該緩存表與待最終插入的目的數據表的表結構相同;先將數據插入到第一緩存表中,待第一緩存表中的數據超過最大個數閾值後,再將第一緩存表的數據批量導入到目的數據表,在導入過程中,若有新的數據要插入資料庫,則將新的數據插入到第二緩存表中,待第二緩存表中的數據超過最大個數閾值後,再將該第二緩存表中的數據導入到目的數據表中,該第一或第二緩存表一旦將其中的數據導入至目的數據表中後,則所述的第一或第二緩存表立即清空;上述往第一或第二緩存表插入數據到最大個數閾值所需要的時間必須大於將該第一或第二緩存表中的數據導入到目的數據表所需時間。
全文摘要
本發明一種利用緩存表來提高資料庫數據插入性能的方法,首先建立兩個基於內存的資料庫緩存表,該緩存表與待最終插入的目的數據表的表結構相同;先將數據插入到第一緩存表中,待第一緩存表中的數據超過最大個數閾值後,再將第一緩存表的數據批量導入到目的數據表,在導入過程中,若有新的數據要插入資料庫,則將新的數據插入到第二緩存表中,待第二緩存表中的數據超過最大個數閾值後,再將該第二緩存表中的數據導入到目的數據表中;本發明可以在不用升級硬體、避免造成資料庫死鎖的條件下大大提高資料庫的插入性能。
文檔編號G06F17/30GK102542054SQ20111045012
公開日2012年7月4日 申請日期2011年12月29日 優先權日2011年12月29日
發明者餘建成, 傅建記, 吳曉前, 詹友陸 申請人:廈門雅迅網絡股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀