一视粮、鎖
工作中需要排查鎖的爭(zhēng)用和等待以及死鎖
隔離級(jí)別
影響數(shù)據(jù)的讀取,默認(rèn)級(jí)別RR
select @@tx_isolation 查看隔離級(jí)別
mysql 要求在同一窗口中 若沒有修改,則數(shù)據(jù)不變
保證數(shù)據(jù)庫(kù)的可重復(fù)度防止幻讀
- RU 讀未提交,可臟讀,一般不允許出現(xiàn)
- RC 讀已提交,可能出現(xiàn)幻讀滑废,可以防止臟讀
- RR 可重復(fù)讀,功能是防止幻讀現(xiàn)象袜爪,利用的是undo的快照技術(shù)+GAP(間隙鎖)+nextlock(下鍵鎖)
- SR 可串行化蠕趁,可以防止死鎖,但并發(fā)事務(wù)性能較差
二辛馆、innoDB核心參數(shù)
雙一標(biāo)準(zhǔn):
這是一個(gè)安全參數(shù)俺陋,5.6以上版本默認(rèn)開啟,作用是控制著redo buffer 刷寫策略
-
1 每次提交事務(wù)昙篙,會(huì)立即刷寫redo到磁盤
(redo buffer --每次事務(wù)--os buffer---磁盤) - 0 事務(wù)提交時(shí)腊状,不做日志寫入操作,每秒寫入苔可,宕機(jī)時(shí)缴挖,丟失1秒數(shù)據(jù)
-
2 每次事務(wù)提交引起寫入文件系統(tǒng)緩存
(redo buffer---每次事務(wù)--os buffer---每秒--磁盤)
innodb_flush_method=(o_DIRECT,fdatasyns)
作用是控制著redo buffer
安全模式
最大安全模式:
innodb_flush_log_at_trx_commit=1
innodb_flush_method=o_DIRECT
最大性能模式:
innodb_flush_log_at_trx_commit=0
innodb_flush_method=fsync
關(guān)于redo設(shè)置
innodb_log_buffer_size=128M 4G內(nèi)存比例
存放事務(wù)的空間,可提高并發(fā)數(shù)
innodb_log_files_in_group=3-4組
innodb_buffer_pool 默認(rèn)128M
一般調(diào)成物理內(nèi)存的50-80% 系統(tǒng)中只有mysql的實(shí)例情況下
MySQL分支
Oracle: MySQL官方版
紅帽:mariaDB
Percona:perconaDB