公司最近說是資料庫中資料量比較大,好多是15/16年的資料,基本不用,但是堆在資料庫又嚴重影響效能,想找個方法解決掉它。所以,這個任務就這麼放到了我的頭上。
業務系統的業務表的資料量很大,嚴重影響效能,需要進行優化。
按照目前問題,對症下藥,我們需要對資料進行歸檔。目前市面上有幾個解決該問題的方案,可選用一種或多種進行優化
rds推出了資料壓縮的支援,在tokudb引擎的幫助下,rds for mysql能以低於五分之一的儲存開銷來支援使用者大資料需求,進一步降低使用者的資料儲存成本。tokudb是乙個支援事務的mysql引擎,擁有出色的資料壓縮能力和極低的資源消耗。
當乙個資料庫的資料空間達到tb級別時運維難度是非常高的。尤其是資料遷移和備份操作,不僅耗時將會成倍增長,而且成功率會有很大下降。另外無論使用者是自建資料庫還是使用雲服務,增長迅速的儲存空間都會帶來巨大的開支。
tokudb可以大幅度降低儲存使用量和iops開銷
tokudb無法支援外來鍵foreign key
tokudb不適用於大量讀取的場景
首先說明版本要求:5.6及以上,5.6親測可行
1、配置tokudb引擎
select
sum(data_length)
into
@all_size
from information_schema.
tables
where
engine
='innodb'
;select
sum(data_length)
into
@change_size
from information_schema.
tables
where
engine
='innodb'
and concat(table_schema,
'.', table_name)in(
'dba1.tbl1'
,'db2.tbl2'
,'db3.tbl3');
select
round
(@change_size
/@all_size
*100
);
引數配置:
登入rds控制台,將loose_tokudb_buffer_pool_ratio設定為上步計算得到百分比。該引數需要重啟資料庫才能生效。
2、 開啟壓縮
rds已推出資料不停機遷移服務
alter
table *** engine
=tokudb
1、不支援外來鍵(foreign key)功能,如果您的表有外來鍵,切換到 tokudb引擎後,此約束將被忽略。
2、tokudb 不適大量讀取的場景,因為壓縮解壓縮的原因。cpu占用會高2-3倍,但由於壓縮後空間小,io開銷低,平均響應時間大概是2倍左右。
3、online ddl 對text,blob等型別的字段不適用
4、沒有完善的熱備工具,只能通過mysqldump進行邏輯備份
1、訪問頻率不高的資料或歷史資料歸檔
2、資料表非常大並且時不時還需要進行ddl操作
接下來還要繼續調研一些新的適用方案,或許會有更優選擇或者可以一起使用的方案,我會將我調研到的新技術繼續更新的。
oracle資料庫的歸檔模式
什麼是oracle歸檔模式?oracle資料庫有聯機重做日誌,這個日誌是記錄對資料庫所做的修改,比如插入,刪除,更新資料等,對這些操作都會記錄在聯機重做日誌裡。一般資料庫至少要有2個聯機重做日誌組。當乙個聯機重做日誌組被寫滿的時候,就會發生日誌切換,這時聯機重做日誌組2成為當前使用的日誌,當聯機重做...
資料庫優化方案 一)
關於資料庫優化方面的文章很多,但是有的寫的似是而非,有的不切實際,對乙個資料庫來說,只能做到更優,不可能最優,並且由於實際需求不同,優化方案還是有所差異,根據實際需要關心的方面 速度 儲存空間 可維護性 可拓展性 來優化資料庫,而這些方面往往又是相互矛盾的,下面結合網上的一些看法和自己的一些觀點做個...
資料庫優化方案一
關於資料庫優化方面的文章很多,但是有的寫的似是而非,有的不切實際,對乙個資料庫來說,只能做到更優,不可能最優,並且由於實際需求不同,優化方案還是有所差異,根據實際需要關心的方面 速度 儲存空間 可維護性 可拓展性 來優化資料庫,而這些方面往往又是相互矛盾的,下面結合網上的一些看法和自己的一些觀點做個...