推薦使用:免費中小企業(yè)ERP軟件(免費下載,像Excel一樣極速上手,可靈活自定義的企業(yè)管理軟件)
問題
1.隨著企業(yè)管理軟件中ERP系統業(yè)務量的增長,ERP系統數據庫數據量也越來越大,數據庫壓力越來越大,影響了對外部系統的響應性能,如價格中心、確認管理等。
2.根據業(yè)務人員的要求,產品工程師需要系統在一年內(當前日期前365天)查詢數據。但是,為了最大限度地減少數據庫中單個表的存儲空間,存檔后只能查詢90天的數據。
方法
1.應用代碼:的改進
(1)壓縮合并非控制頭寸的批量(當前查詢的是金融類)。對于具有相同屬性的資源(如資源id、供應商、成本價、損失期、結算時間等)。)為同一批次,今后只增加或減少批次數量,不再增加批次記錄[朱鋼——已上線];
(2)減少對數據庫的訪問。對于數據量大且不常修改的表,如庫存批適用類別表,緩存用于有效數據。它的關鍵字是:key=STK _珠三角_ CLS _ RDS _ * * * * * * *(* * *)是批標識,而該值是表記錄數組[表記錄】。今后,如果需要查詢批次的適用類別,可以先查看緩存,這樣就減少了對[好又多BIN —— 已上線的訪問壓力
2.執(zhí)行數據庫轉換:
(1)歸檔數據,歸檔后刪除主庫中已歸檔的數據,減少數據庫[朱崗崗—— 已上線單個表的存儲空間];
(2)拆分數據庫,將數據切分從單機存儲改為分布式存儲,是目前互聯網行業(yè)解決海量數據存儲的殺手锏,也是本文分享的重點。
問題
什么是數據庫切分?
2.您需要實現哪些框架工具?
3.使用哪種工具?
方法
研究:
數據庫切分如下:
1.垂直切分:
把數據庫想象成一個接一個地由許多“數據塊”(表)組成。我們垂直切割這些“數據塊”,然后將它們分布在多個數據庫主機上。這個切分方法是一個垂直數據切分。以表為單位,不同的表被分配給不同的數據庫或主機。
2.水平切分:
簡單層切分主要是根據某個字段的某個規(guī)則,將一個訪問極其簡單的表分配給多個表,每個表包含一部分數據。根據行為單元中的特定條件,同一表中的數據被劃分到不同的數據庫或主機中。
3.接頭切分
以上兩種方法切分結合使用。
從系統的程序架構級別來看,切分邏輯可以在幾個級別上實現:
DAO層
ORM框架層
JDBC API層
DAO和JDBC之間的Spring數據訪問封裝層(各種Spring的模板)
切分應用服務器和數據庫之間的代理服務器等。
對于這些數據切分,選擇并擴展了在DAO和JDBC之間的Spring數據訪問封裝層中的Cobar-Client。下圖是阿里巴巴官方中提供的Cobar客戶端現有架構的鳥瞰圖,可以從圖中獲得直觀的圖像。
選擇使用java中間件cobar-client主要基于以下考慮:
(1)cobar客戶端公司已經在使用基于阿里巴巴的框架擴展cobar客戶端;
(2)cobar-client是一個輕量級應用程序。基于mybatis和spring,易于擴展和維護。
(3)使用數據庫代理服務器,我公司沒有在實戰(zhàn)中實施。代碼開發(fā)和擴展維護的技術門檻相對較高。如果你想自己維護它,至少你需要非常熟悉IO和多線程。
(4)數據庫代理服務器的代理需要支持各種mysql語法,而這個需求只需要支持DML語言。
(5)不需要申請服務器資源(為了實現代理服務器本身的高可用性,需要多個服務器,其他軟件需要合并,部署研究和學習成本相對較高);
(6)此外,cobar客戶端可以精確地指定某個sql是否被支持切分,進一步降低開發(fā)和測試成本。
(7)不要使用分布式數據庫,因為沒有找到合適的開源和穩(wěn)定的分布式數據庫。此外,如果使用分布式數據庫,可能會對現有的系統架構產生很大的影響,并且風險是不可控制的。