計算機(jī)證書有什么作用 計算機(jī)證書有什么用?
2023-08-24
更新時間:2023-08-24 18:09:14作者:佚名
今天本是晴天,到了下午天一下子暗起來了,不久便下起了小雨,沒辦法外出,就在家鼓搗起了MySQL數(shù)據(jù)庫服務(wù)。
前一段時間做內(nèi)訓(xùn),演示數(shù)據(jù)庫復(fù)制服務(wù),通過數(shù)據(jù)庫客戶端工具Navicat Premium導(dǎo)入樣例數(shù)據(jù)庫時,只導(dǎo)入了數(shù)據(jù)庫結(jié)構(gòu),數(shù)據(jù)卻一條都沒導(dǎo)入,當(dāng)時就覺得納悶,好在不影響演示,打算有空了查一下。今天恰好有點(diǎn)時間,從下午四點(diǎn)多,一直鼓搗到晚上,差不多搞明白了原因,同時也嘗試了通過mysql數(shù)據(jù)庫服務(wù)的參數(shù)調(diào)優(yōu)來提高大數(shù)據(jù)量的導(dǎo)入性能。
01 實驗環(huán)境
1、本地win10,需要安裝并配置好mysql,怎么安裝百度查;
2、安裝客戶端工具Navicat Premium,怎么安裝百度查;
3、華為云&天翼云上開通mysql數(shù)據(jù)庫服務(wù),我選擇最低配1c2g,SAS盤,并配置了2M的EIP;
4、下載mysql示例數(shù)據(jù)庫,大概有近400萬條數(shù)據(jù),具體下載地址忘了,如果需要可以@我。
02 Navicat 導(dǎo)入數(shù)據(jù)失敗
先從日志里查找原因,提示是語法錯誤,不斷的去嘗試,發(fā)現(xiàn)在Navicat工具的mysql命令行窗口,僅僅輸入source命令居然也報錯,百思不得其解,各種百度,可能的原因是source命令是mysql客戶端的工具集,Navicat可能不支持,要導(dǎo)入還是要直接在命令行窗口執(zhí)行。
03 本地批量數(shù)據(jù)導(dǎo)入
1、以系統(tǒng)管理員的權(quán)限打開cmd窗口;
2、運(yùn)行 net start mysql,顯示“服務(wù)已經(jīng)啟動成功”,如下圖:
3、進(jìn)入到employees樣例數(shù)據(jù)庫文件夾,執(zhí)行導(dǎo)入數(shù)據(jù)庫命令:
mysql -h 125.124.74.17 -P 8635 -uroot -pTest@1234 < employees.sql
“<”符號表示導(dǎo)入數(shù)據(jù)庫文件,執(zhí)行結(jié)果如下:
圖中導(dǎo)入數(shù)據(jù)成功,耗時4分42秒,通過Navicat工具能夠直觀的看到導(dǎo)入的數(shù)據(jù)庫、表、視圖及數(shù)據(jù)等,如下圖:
04 參數(shù)調(diào)優(yōu)
通過不斷地嘗試,針對大數(shù)據(jù)量的批量導(dǎo)入,在華為云&天翼云服務(wù)端可以調(diào)優(yōu)的參數(shù)有2個,分別是
innodb_flush_log_at_trx_commit和bulk_insert_buffer_size,我們可以在華為云&天翼云mysql服務(wù)的參數(shù)組界面修改參數(shù),如下圖:
innodb_flush_log_at_trx_commit
該參數(shù)控制重做日志寫入磁盤的過程,系統(tǒng)默認(rèn)為1,表示事務(wù)提交時,會將重做日志緩沖寫入磁盤,并且立即刷新.也即是說一旦事務(wù)完成,數(shù)據(jù)立即寫盤,以確保數(shù)據(jù)不會丟失。但對于批量導(dǎo)入大量數(shù)據(jù)的情況,會導(dǎo)致頻繁寫盤,影響導(dǎo)入性能。我們這里將該參數(shù)設(shè)置為0,表示每間隔1秒再寫盤。這里我們把參數(shù)從1改為0,如圖:
bulk_insert_buffer_size
用來緩存批量插入數(shù)據(jù)的時候臨時緩存寫入數(shù)據(jù),大數(shù)據(jù)的sql文件能達(dá)到幾百M(fèi)乃至上G,默認(rèn)8M,確實有點(diǎn)小,這里我們改到120M。
修改參數(shù)后保險期間需重啟數(shù)據(jù)庫實例。
05 性能優(yōu)化效果
先是修改了
innodb_flush_log_at_trx_commit參數(shù),導(dǎo)入數(shù)據(jù)耗時00:04:14,快了28秒;
然后再修改bulk_insert_buffer_size參數(shù),耗時00:03:42,此次調(diào)優(yōu)提升了32秒;
相比沒有調(diào)優(yōu)之前,整體快了60秒,相當(dāng)于性能提升了了27%!
06 總結(jié)
通常用戶在云端開了RDS服務(wù)后,需要將本地私有云的數(shù)據(jù)批量導(dǎo)入到云端,對數(shù)據(jù)量達(dá)到千萬級的情況,需要綜合來考慮,比如數(shù)據(jù)可以分批導(dǎo)入,為提升導(dǎo)入性能,可以調(diào)整RDS的相關(guān)參數(shù),以加快數(shù)據(jù)的導(dǎo)入速度,使客戶的業(yè)務(wù)中斷時間降低到最小。當(dāng)然除了手動導(dǎo)入,也可以通過購買數(shù)據(jù)庫復(fù)制服務(wù)來實現(xiàn)在線的數(shù)據(jù)導(dǎo)入,好處是能夠避免人工導(dǎo)入帶來的疏忽,并能實現(xiàn)業(yè)務(wù)的平滑遷移。
最后附上導(dǎo)入的數(shù)據(jù)庫的相關(guān)表的數(shù)據(jù)條數(shù):
select count(*) from salaries 2844047 select count(*) from employees 300024 select count(*) from titles 443308 select count(*) from dept_emp 331603