本發明涉及數據庫分區,具體涉及一種數據庫分區方法、裝置、計算機設備及計算機可讀存儲介質。
背景技術:
1、目前,在當今信息化時代,企業級應用對數據庫系統的需求日益增長,尤其是在金融、電信、電子商務等關鍵行業。這些行業面臨著海量歷史數據的存儲與管理挑戰,同時還要滿足高并發查詢和每日大批量數據寫入的嚴苛要求。海量歷史數據如同一座龐大的信息寶庫,蘊含著豐富的業務洞察與價值,但其存儲與查詢效率卻成為制約企業發展的瓶頸。高并發查詢如同潮水般涌來,用戶、系統和業務流程都在爭分奪秒地獲取數據,一旦查詢效率低下,將直接影響用戶體驗、業務決策的及時性以及企業運營的流暢度。而每日大批量的數據寫入任務,更是如同巨石壓頂,對數據庫系統的i/o資源造成巨大沖擊,不僅拖慢了寫入速度,還可能引發查詢性能的連鎖反應,導致整個數據庫系統陷入性能泥潭。
2、為了應對這種復雜的工作負載,數據庫分區技術應運而生,成為提高數據庫系統性能和可擴展性的關鍵手段。數據庫分區通過將龐大的數據表分割成多個較小的分區,每個分區存儲一部分數據,從而顯著減少了查詢時需要掃描的數據量。當用戶發起查詢請求時,數據庫系統只需在相關的分區中進行數據檢索,而非在整個大表中遍歷,這無疑大幅提升了查詢效率,讓數據檢索如同在小池塘中撈魚,輕松且迅速。同時,分區技術還能分散寫入操作的i/o壓力,將原本集中在一塊存儲設備上的寫入負載分散到多個分區對應的存儲設備上,避免了i/o資源的擁堵,讓數據寫入更加順暢,如同將車流分散到多條道路上,緩解了交通擁堵。
3、然而,在企業的數據庫系統中,靜態分區是最為常見的應用形式。這種分區方式通常在數據庫設計階段,由數據庫管理員根據預估的數據分布和查詢模式來預先定義分區規則。雖然靜態分區在一定程度上優化了查詢效率,但它也存在諸多局限性。首先,數據分布和查詢模式并非一成不變,隨著時間的推移和業務的發展,原有的分區規則可能不再適用,導致數據分布不均,部分分區數據量過大,而另一些分區數據量過小,這種數據傾斜現象會嚴重影響查詢性能和存儲資源的合理利用。其次,靜態分區往往隨數據庫部署集中在一塊存儲設備上,這意味著所有的分區共享同一存儲設備的i/o資源,在大批量寫入場景下,巨額的i/o資源消耗會對查詢操作產生不可避免的影響,寫入操作與查詢操作相互爭奪i/o資源,如同兩股力量在同一條狹窄的通道上激烈碰撞,導致查詢響應時間延長,寫入速度減慢,整體數據庫性能大打折扣。
4、基于此,如何提供一種數據庫分區方法、裝置、計算機設備及計算機可讀存儲介質,可以有效提高跑批業務場景下數據庫的查詢性能,是目前本領域技術人員亟待解決的問題。
技術實現思路
1、鑒于上述現有技術的不足之處,本發明的目的在于提供一種數據庫分區方法、裝置、計算機設備及計算機可讀存儲介質,旨在解決如何可以有效提高跑批業務場景下數據庫的查詢性能的問題。
2、為了達到上述目的,本發明采取了以下技術方案:
3、第一方面,本發明提供了一種數據庫分區方法,其中,包括:
4、將當日跑批數據寫入數據庫的新建分區,并在所述數據庫的所述當日跑批數據寫入完成后,將所述新建分區和所述數據庫的歷史最新分區中的數據異步回放至臨時表;
5、在所述臨時表異步回放完成后,刪除所述新建分區,并將所述歷史最新分區的分區邊界擴充至當日時間,得到目標歷史最新分區;
6、對所述臨時表和所述目標歷史最新分區執行分區交換后,創建所述數據庫的次日跑批分區。
7、第二方面,本發明提供了一種數據庫分區裝置,其中,包括:
8、寫入與回放模塊,用于將當日跑批數據寫入數據庫的新建分區,并在所述數據庫的所述當日跑批數據寫入完成后,將所述新建分區和所述數據庫的歷史最新分區中的數據異步回放至臨時表;
9、刪除與擴充模塊,用于在所述臨時表異步回放完成后,刪除所述新建分區,并將所述歷史最新分區的分區邊界擴充至當日時間,得到目標歷史最新分區;
10、交換與創建模塊,用于對所述臨時表和所述目標歷史最新分區執行分區交換后,創建所述數據庫的次日跑批分區。
11、第三方面,本發明提供了一種計算機設備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機程序,其中,所述處理器執行所述計算機程序時實現如上所述的數據庫分區方法。
12、第四方面,本發明提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機程序,其中,所述計算機程序被處理器執行時實現如上所述的數據庫分區方法。
13、相較于現有技術,本發明提供了一種數據庫分區方法、裝置、計算機設備及計算機可讀存儲介質,其中,通過將當日跑批數據寫入數據庫的新建分區,并在所述數據庫的所述當日跑批數據寫入完成后,將所述新建分區和所述數據庫的歷史最新分區中的數據異步回放至臨時表;在所述臨時表異步回放完成后,刪除所述新建分區,并將所述歷史最新分區的分區邊界擴充至當日時間,得到目標歷史最新分區;對所述臨時表和所述目標歷史最新分區執行分區交換后,創建所述數據庫的次日跑批分區;從而本發明可以有效提高跑批業務場景下數據庫的查詢性能。
1.一種數據庫分區方法,其特征在于,包括:
2.根據權利要求1所述的數據庫分區方法,其特征在于,所述將當日跑批數據寫入數據庫的新建分區,并在所述數據庫的所述當日跑批數據寫入完成后,將所述新建分區和所述數據庫的歷史最新分區中的數據異步回放至臨時表,包括:
3.根據權利要求1所述的數據庫分區方法,其特征在于,所述在所述臨時表異步回放完成后,刪除所述新建分區,并將所述歷史最新分區的分區邊界擴充至當日時間,得到目標歷史最新分區,包括:
4.根據權利要求1、2或3所述的數據庫分區方法,其特征在于,所述新建分區獨占第一存儲設備,所述臨時表獨占第二存儲設備,所述歷史最新分區獨占第三存儲設備。
5.根據權利要求4所述的數據庫分區方法,其特征在于,所述對所述臨時表和所述目標歷史最新分區執行分區交換后,創建所述數據庫的次日跑批分區,包括:
6.根據權利要求5所述的數據庫分區方法,其特征在于,所述當所述交換結果為交換成功時,則創建所述數據庫的所述次日跑批分區,還包括:
7.一種數據庫分區裝置,其特征在于,包括:
8.根據權利要求7所述的數據庫分區裝置,其特征在于,所述新建分區獨占第一存儲設備,所述臨時表獨占第二存儲設備,所述歷史最新分區獨占第三存儲設備。
9.一種計算機設備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執行所述計算機程序時實現如權利要求1-6任一項所述的數據庫分區方法。
10.一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現如權利要求1-6任一項所述的數據庫分區方法。