1.影響sql的原因
- 超高的效率低下的sql涩禀,qps超高
- 大量的并發(fā) 數(shù)據(jù)庫(kù)連接數(shù)被占滿(mǎn)(max_connections默認(rèn)100)超高的cpu使用率 因cpu資源耗盡而出現(xiàn)死機(jī)
- 磁盤(pán)IO性能突然下降(使用更快的磁盤(pán)設(shè)備)其它大量消耗盤(pán)性能的計(jì)劃任務(wù)
- 網(wǎng)卡IO被占滿(mǎn) (減少?gòu)姆?wù)器的數(shù)量,進(jìn)行分級(jí)緩屯烦,避免select *,分離業(yè)務(wù)網(wǎng)絡(luò))
- 大表(記錄行數(shù)巨大符衔,單表超過(guò)千萬(wàn)行悯蝉,表文件巨大,表數(shù)據(jù)文件超過(guò)10G)
2.什么是鎖
- 鎖對(duì)主要作用是管理共享資源的并發(fā)訪問(wèn)
- 鎖用于實(shí)現(xiàn)事務(wù)的隔離性
共享鎖 獨(dú)占鎖
阻塞 與 死鎖不一樣
阻塞 數(shù)據(jù)庫(kù)阻塞的現(xiàn)象:第一個(gè)連接占有資源沒(méi)有釋放,而第二個(gè)連接需要獲取這個(gè)資源。如果第一個(gè)連接沒(méi)有提交或者回滾跟磨,
第二個(gè)連接會(huì)一直等待下去,直到第一個(gè)連接釋放該資源為止攒盈。對(duì)于阻塞抵拘,數(shù)據(jù)庫(kù)無(wú)法處理,所以對(duì)數(shù)據(jù)庫(kù)操作要及時(shí)地提交或
數(shù)據(jù)庫(kù)死鎖 數(shù)據(jù)庫(kù)死鎖的現(xiàn)象:第一個(gè)連接占有資源沒(méi)有釋放型豁,準(zhǔn)備獲取第二個(gè)連接所占用的資源僵蛛,而第二個(gè)連接占有資源沒(méi)有釋放,準(zhǔn)備獲取第一個(gè)連接所占用的資源迎变。這種互相占有對(duì)方需要獲取的資源的現(xiàn)象叫做死鎖墩瞳。對(duì)于死鎖,數(shù)據(jù)庫(kù)處理方法:犧牲一個(gè)
連接氏豌,保證另外一個(gè)連接成功執(zhí)行。
如何選擇正確的引擎
-事務(wù) - 備份 -崩潰恢復(fù) -存儲(chǔ)引擎自有特性
3.數(shù)據(jù)庫(kù)設(shè)計(jì)對(duì)性能的影響
過(guò)份的反范式為表建立太多列
過(guò)份的范式造成太多表關(guān)聯(lián)
使用不巧當(dāng)?shù)姆謪^(qū)
使用外鍵保證數(shù)據(jù)太多保證完整性
數(shù)據(jù)庫(kù)結(jié)構(gòu)優(yōu)化
1.減少數(shù)據(jù)冗余
2.盡量避免數(shù)據(jù)庫(kù)維護(hù)中出現(xiàn)更新热凹,插入和刪除異常
3.節(jié)約數(shù)據(jù)存儲(chǔ)空間
4.提高查詢(xún)效率
數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)
三范式
1.第一范式
數(shù)據(jù)庫(kù)表中的所有字段都只具有單一屬性
單一屬性的列是由基本的數(shù)據(jù)類(lèi)型所構(gòu)成
設(shè)計(jì)出來(lái)的表都是簡(jiǎn)單的二維表
2.第二范式
要求符合第一范式泵喘,消除了非主屬性對(duì)于碼的部分函數(shù)依賴(lài)
3.第三范式
屬性不依賴(lài)于其它
優(yōu)點(diǎn)
可以盡量減少數(shù)據(jù)冗余,數(shù)據(jù)表更新體積小
范式化更新操作比反范式化更快
范式化表通常比反范式化更小
缺點(diǎn)
查詢(xún)需要多個(gè)表進(jìn)行關(guān)聯(lián)
更難進(jìn)行索引優(yōu)化
mysql復(fù)制
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者