电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

簡單了解MYSQL數據庫優化階段

瀏覽:45日期:2023-10-15 16:15:54

引言

大家在面試的時候,是否遭遇過,面試官詢問

你們是如何進行數據庫優化的?

那這個問題應該怎么答呢?其實寫這個題材的原因是我這幾天看到各公眾號轉的一篇數據庫調優的知識(不上鏈接了),我就稍微翻了幾下,上面動不動就來說要對數據庫進行水平拆分,我就想反問各位讀者,你們幾個人經歷過水平拆分?現在很多文章,實踐性實在太差,只能說純理論分析。

這篇文章最早來自知乎的一個提問,我在其基礎上完善了一下。

第一階段 優化sql和索引

這才是調優的第一階段啊,為什么呢?

因為這一步成本最低啊,不需要加什么中間件。你沒經過索引優化和SQL優化,就來什么水平拆分,這不是坑人么。

那步驟是什么樣呢?我說個大概

(1)用慢查詢日志定位執行效率低的SQL語句

(2)用explain分析SQL的執行計劃

(3)確定問題,采取相應的優化措施,建立索引啊,等

我就不舉例了,因為如何優化SQL的文章,一抓一大把,再貼過來,讀者看著也累。

第二階段 搭建緩存

在優化sql無法解決問題的情況下,才考慮搭建緩存。畢竟你使用緩存的目的,就是將復雜的、耗時的、不常變的執行結果緩存起來,降低數據庫的資源消耗。

這里需要注意的是:搭建緩存后,系統的復雜性增加了。你需要考慮很多問題,比如:

緩存和數據庫一致性問題?(比如是更緩存,還是刪緩存),這點可以看我的一篇文章《數據庫和緩存雙寫一致性方案解析》。緩存擊穿、緩存穿透、緩存雪崩問題如何解決?是否有做緩存預熱的必要。不過我猜,大部分中小公司應該都沒考慮。

第三階段 讀寫分離

緩存也搞不定的情況下,搞主從復制,上讀寫分離。在應用層,區分讀寫請求。或者利用現成的中間件mycat或者altas等做讀寫分離。

需要注意的是,只要你敢說你用了主從架構,有三個問題,你要準備:

(1)主從的好處?

回答:實現數據庫備份,實現數據庫負載均衡,提交數據庫可用性

(2)主從的原理?

回答:如圖所示(圖片不是自己畫的,偷懶了)

簡單了解MYSQL數據庫優化階段

主庫有一個log dump線程,將binlog傳給從庫

從庫有兩個線程,一個I/O線程,一個SQL線程,I/O線程讀取主庫傳過來的binlog內容并寫入到relay log,SQL線程從relay log里面讀取內容,寫入從庫的數據庫。

(3)如何解決主從一致性?

回答:這個問題,我不建議在數據庫層面解決該問題。根據CAP定理,主從架構本來就是一種高可用架構,是無法滿足一致性的哪怕你采用同步復制模式或者半同步復制模式,都是弱一致性,并不是強一致性。所以,推薦還是利用緩存,來解決該問題。

步驟如下:

1、自己通過測試,計算主從延遲時間,建議mysql版本為5.7以后,因為mysql自5.7開始,多線程復制功能比較完善,一般能保證延遲在1s內。不過話說回來,mysql現在都出到8.x了,還有人用5.x的版本么。

2、數據庫的寫操作,先寫數據庫,再寫cache,但是有效期很短,就比主從延時的時間稍微長一點。

3、讀請求的時候,先讀緩存,緩存不存在(這時主從同步已經完成),再讀數據庫。

第四階段 利用分區表

說句實在話,你們面試的時候,其實可以略過這個階段。因為很多互聯網公司都不建議用分區表,我自己也不太建議用分區表,采用這個分區表,坑太多。

這里引用一下其他文章的回答:

什么是mysql的分區表?

回答:所有數據還在一個表中,但物理存儲根據一定的規則放在不同的文件中。這個是mysql支持的功能,業務代碼不需要改動,

但是sql語句需要改動,sql條件需要帶上分區的列。

缺點

(1)分區鍵設計不太靈活,如果不走分區鍵,很容易出現全表鎖

(2)在分區表使用ALTER TABLE … ORDER BY,只能在每個分區內進行order by。

(3)分區表的分區鍵創建索引,那么這個索引也將被分區。分區鍵沒有全局索引一說。

(4)自己分庫分表,自己掌控業務場景與訪問模式,可控。分區表,研發寫了一個sql,都不確定該去哪個分區查,不太可控。...不列舉了,不推薦

第五階段 垂直拆分

上面四個階段都沒搞定,就來垂直拆分了。垂直拆分的復雜度還是比水平拆分小的。將你的表,按模塊拆分為不同的小表。大家應該都看過《大型網站架構演變之路》,這種類型的文章或者書籍,基本都有提到這一階段。如果你有幸能夠在什么運營商、銀行等公司上班,你會發現他們一個表,幾百個字段都是很常見的事情。所以,應該要進行拆分,拆分原則一般是如下三點:

(1)把不常用的字段單獨放在一張表。

(2)把常用的字段單獨放一張表

(3)經常組合查詢的列放在一張表中(聯合索引)。

第六階段 水平拆分

OK,水平拆分是最麻煩的一個階段,拆分后會有很多的問題,我再強調一次,水平拆分一定是最最最最后的選擇。從某種意義上,我覺得還不如垂直拆分。因為你用垂直拆分,分成不同模塊后,發現單模塊的壓力過大,你完全可以給該模塊單獨做優化,例如提高該模塊的機器配置等。如果是水平拆分,拆成兩張表,代碼需要變動,然后發現兩張表還不行,再變代碼,再拆成三張表的?水平拆分模塊間耦合性太強,成本太大,不是特別推薦。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 深圳办公室装修-写字楼装修设计-深圳标榜装饰公司 | 耐磨陶瓷,耐磨陶瓷管道_厂家-淄博拓创陶瓷科技 | 双工位钻铣攻牙机-转换工作台钻攻中心-钻铣攻牙机一体机-浙江利硕自动化设备有限公司 | 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 水质传感器_水质监测站_雨量监测站_水文监测站-山东水境传感科技有限公司 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | PAS糖原染色-CBA流式多因子-明胶酶谱MMP-上海研谨生物科技有限公司 | 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | 无锡网站建设_企业网站定制-网站制作公司-阿凡达网络 | 耐驰泵阀管件制造-耐驰泵阀科技(天津)有限公司 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | 颗粒机,颗粒机组,木屑颗粒机-济南劲能机械有限公司 | 广州小程序开发_APP开发公司_分销商城系统定制_小跑科技 | 钢丝绳探伤仪-钢丝绳检测仪-钢丝绳探伤设备-洛阳泰斯特探伤技术有限公司 | 选矿设备-新型重选设备-金属矿尾矿重选-青州冠诚重工机械有限公司 | 深圳侦探联系方式_深圳小三调查取证公司_深圳小三分离机构 | 全自动五线打端沾锡机,全自动裁线剥皮双头沾锡机,全自动尼龙扎带机-东莞市海文能机械设备有限公司 | 冷柜风机-冰柜电机-罩极电机-外转子风机-EC直流电机厂家-杭州金久电器有限公司 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 北京自然绿环境科技发展有限公司专业生产【洗车机_加油站洗车机-全自动洗车机】 | SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | 福州甲醛检测-福建室内空气检测_环境检测_水质检测-福建中凯检测技术有限公司 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 喷播机厂家_二手喷播机租赁_水泥浆洒布机-河南青山绿水机电设备有限公司 | GAST/BRIWATEC/CINCINNATI/KARL-KLEIN/ZIEHL-ABEGG风机|亚喜科技 | MVE振动电机_MVE震动电机_MVE卧式振打电机-河南新乡德诚生产厂家 | 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 开云(中国)Kaiyun·官方网站-登录入口 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 国产频谱分析仪-国产网络分析仪-上海坚融实业有限公司 | 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 探鸣起名网-品牌起名-英文商标起名-公司命名-企业取名包满意 |