簡要:每一項技術(shù)都離不開數(shù)據(jù)庫相赁,數(shù)據(jù)庫猶如人的大腦;密不可分呵曹,一旦出了問題(故障),停頓何暮,卡主后果可想而知奄喂;我(fudomine)潛心學習數(shù)據(jù)庫優(yōu)化3個月,現(xiàn)在將學到的經(jīng)驗分享給大家海洼,希望能夠跟各位PHP大神分享和學習探索跨新,如果有不對或者好的建議告知下;*~*坏逢!
一域帐、合理時間備份數(shù)據(jù)
備份數(shù)據(jù),是每個項目維護的日常工作是整;有利于數(shù)據(jù)在系統(tǒng)遭受破壞或其他特定情況下,重新加以利用的一個過程肖揣;項目的備份時間,大都是根據(jù)項目需求來決定浮入,比如:每小時龙优,指定時間等;
案例:??某個項目正進行大型活動事秀,數(shù)據(jù)庫由于巨大用戶量的訪問以及定時備份彤断;造成帶寬出現(xiàn)峰值野舶,大量執(zhí)行操作處于隊列狀態(tài),致使數(shù)據(jù)庫停止工作宰衙;
方法:
1. 若拓撲結(jié)構(gòu)單一結(jié)構(gòu)(單臺數(shù)據(jù)庫)平道,停止定時任務(wù)(備份);
2. 若拓撲結(jié)構(gòu)非單一結(jié)構(gòu)(主從/分布式)供炼,可停止定時任務(wù)一屋;或主(數(shù)據(jù)庫)放棄執(zhí)行定時任務(wù),從(數(shù)據(jù)庫)執(zhí)行劲蜻;
二陆淀、避免對大表操作
?何謂大表,是指記錄行數(shù)巨大先嬉,單標超過千萬行轧苫;表數(shù)據(jù)文件巨大,表數(shù)據(jù)文件超過10G疫蔓;
(1) 慢查詢**很難在一定時間內(nèi)過濾出所需要的數(shù)據(jù)含懊,原因:來源少->區(qū)分度低->大量磁盤IO->降低磁盤效率->大量慢查詢
(2)大表對DDL操作
????- 建立索引需要很長的時間,過程可能會造成:主從延遲衅胀、鎖表甚至于造成死鎖
???? - 修改表結(jié)構(gòu)需要長時間鎖表岔乔,過程可能會造成:主從延遲,鎖表滚躯,阻塞
方法:
1. 分庫分表
2. 數(shù)據(jù)歸檔:減少前后端業(yè)務(wù)影響
大事務(wù)
?大事務(wù)雏门,運行時間比較長,操作的數(shù)據(jù)比較多的事務(wù)
(1)風險
* 鎖定太多數(shù)據(jù)掸掏,造成大量的阻塞* 回滾時間比較長
* 執(zhí)行時間長茁影,容易造成主從延遲
(2)方法
?*? 避免一次處理太多的數(shù)據(jù)(增刪改查)
?* 移除不必要在事務(wù)中的select操作
作者:不動峰
出處:http://www.reibang.com/users/c0abc9c5f51e/latest_articles
博客園:http://www.cnblogs.com/mylly/
備注:現(xiàn)承接企業(yè)大型網(wǎng)站/接口/微信公眾號/企業(yè)號/小程序,有意向的朋友請聯(lián)系(QQ:857280707)? 版權(quán)所有丧凤,歡迎保留原文鏈接進行轉(zhuǎn)載:)