MySQL之所以能成為現在最流行的開源資料庫,這跟它的開放性、包容性是分不開的!
我先說一個笑話,這個笑話是我從萬維鋼的專欄里看到的,
三個邏輯學家走進酒吧,酒保問他們,三位都喝啤酒嗎?
第一個邏輯學家說,我不知道,
第二個邏輯學家說,我不知道,
第三個邏輯學家說,是的,
這個笑話有點冷,需要用一點邏輯才能欣賞,要想否定“三人都喝啤酒”,只要有一個人知道自己不喝就行了,前兩個邏輯學家說不知道,就說明他們自己是想喝的,只是不知道別人喝不喝,而第三個人一看前兩個人都說不知道,那就說明這兩個人肯定都是要喝的,而他自己也想喝啤酒,所以他就可以判斷三人都想喝啤酒,
他們的回答有點怪,但是非常準確,
為什么要講這個故事呢?因為像這種認真和嚴謹,你將在我們書中的每一頁都能感受到,相信通過這本書的系統性訓練,大家也能感受到這種思維方式的美,最終也能獲得這種思維方式,
“授人以魚,不如授之以漁,”具備優秀的思維能力才是在未來可以遷移的能力,所以,接下來給大家分享的這份《Mysql性能優化金字塔法則》大家要好好看!同時,想要這份檔案的朋友們只需要轉發+關注,掃描小編的二維碼即可免費獲取!!!

主要內容
本書一共分為3篇:基礎篇、案例篇和工具篇,“基礎篇”我們主要從理論基礎和基本原理層面介紹了MySQL的安裝與配置等;“案例篇”我們是從硬體和系統、MySQL架構等方面給出了性能優化的十幾個案例,“工具篇”我們主要介紹了在MySQL性能優化程序中需要用到的各種工具等等!
基礎篇
基礎篇的內容設計,旨在為大家普及一些在性能優化程序中可能使用到的MySQL基礎知識,為了方便大家對MySQL的體系結構和組件有一個整體認識,首先,完整介紹MySQL的安裝、升級和整個體系組成結構,并介紹在MySQL運行程序中所有后臺執行緒的作用;
這一部分我們用14個章節重點介紹MySQL的4個系統厙,希望引起讀者對架構優化的思考,相信大家通過閱讀基礎篇的內容一定會有所識訓,

第3章MySQL體系結構,本章會從整體上簡要介紹整個MySQL Server體系是由哪些組件組成的,MySQL默認支持哪些存盤引擎,我們常用的ImnoDB存盤引擎又是由哪些組件組成的,以及各個組件的作用是什么,InnoDB存盤引擎中有哪些后臺執行緒,MySQL有哪些前臺執行緒等內容,下面將以MySQL 5.7.20版本為例進行介紹,

第4章performance schema初相識,本章首先介紹什么是performance_schema,以及它能做什么;然后簡單介紹如何快速上手使用performance schema的方法;最后簡單介紹performance_schema由哪些表組成,以及這些表的大致作用是什么,

本章涉及兩個基本概念,
- instruments:生產者,用于采集MySQL中各種操作產生的事件資訊,對應配置表中的配置項,我們可以稱之為事件采集配置項,以下提及的生產者均統稱為instruments
- consumers:消費者,對應的消費者表用于存盤來自instruments采集的資料,對應配置表中的配置項,我們可以稱之為消費存盤配置項,以下提及的消費者均統稱為consumers

通過第4章和第5章對performance schema的介紹,相信大家對什么是performance schema已經初步形成了一個整體認識,本章將介紹一些performance_schema應用示例,以方便大家能夠快速了解如何使用performance schema來排查常見的資料庫性能問題,

在第4~6章中,為大家介紹了performance schema系統庫,為什么要把performance schema排在前面介紹呢?其中一個原因就是它是sys系統庫的資料來源,
從本章開始的第7~9章,將為大家介紹什么是sys系統庫,以及如何使用sys系統庫來排查所常見的資料庫性能問題,
sys系統庫初相識

sys系統庫配置表

sys系統庫應用示例薈萃第

從本章開始的第10章和第11章,將為大家介紹什么是information schema,以及如何使用information schema來查詢一些在日常作業中所需的資料庫資訊,
information schema初相識

information schema應用示例薈萃

統庫下的持久表的映射,從本章開始的第12~I7章,將為大家詳細介紹mysql系統庫,本章先介紹mysql 系統庫中的權限系統表,
在mysq1系統庫中,MySQL訪問權限系統表包含如下幾個表:
- user:包含用戶賬戶、全域權限和其他非權限串列(安全配置欄位和資源控制欄位)
- db:資料庫級別的權限表,
- tables priv:表級別的權限表,
- columns priv:欄位級別的權限表,
- procs priv:存盤程序和函式權限表,
- proxies priv:代理用戶權限表,
mysql系統庫之權限系統表

mysql系統庫之訪問權限控制系統

mysql系統庫之統計資訊表

mysql系統庫應用示例薈萃

第18章復制技術的演進,復制技術的演進實際上有兩條路線,一條路線為基于資料安全的復制技術演進:另一條路線為基于復制效率的復制技術演進,在本章中,我們將針對這兩條復制技術的演進路線分別進行介紹,

第19章事務概念基礎,講到事務概念,就必須要提到事務隔離級別,關于這塊內容,筆者問過很多同事,也作為面試內容,發現大家容易混淆,說不清有哪幾種事務隔離級別,以及分不清事務隔離級別和例外現象,本章就將梳理事務隔離級別和例外現象,希望大家讀完后對這部分內容不再混淆,

第20章InnoDB鎖,對資料庫中鎖的作用大家應該都比較了解,了解MySQL的讀者肯定也會知道其中一些鎖的型別例如間隙鎖、記錄鎖等,但是否清楚在各種情況下MySQL是如何施加鎖的呢?這一章會對InnoDB鎖進行詳細的講解,包括鎖的型別、如何查看鎖以及對各種鎖的驗證等,

第21章SQL優化,在這些年的作業中,筆者發現大多數性能問題都與SOL陳述句有關:在參與過的一些專案中,筆者也發現大多數開發人員不太關心程式中執行的SQL陳述句,正因為這樣,業界涌現出很多優秀的SQL陳述句審核平臺,協助開發人員和DBA的作業,本章能夠幫助大家加深對MySQL中索引和Join演算法的理解,可以結合本書中的執行計劃和案例章節來閱讀本章內容,

第22章MySQL讀寫擴展,這些年,更多的企業,尤其是傳統企業愿意嘗試使用MySQL資料庫,但MySQL的架構與傳統IOE架構大不相同,在與客戶交流的程序中,筆者了解到從讀寫分離到分庫分表,再到NewSQL,客戶在進行不斷地探索,本章將對MySQL中的讀寫擴展架構進行解釋和分析,幫助嘗試使用MySQL資料庫的企業能夠根據業務場景來選擇合適的架構,

案例篇
這篇文章中的“案例篇”也是我見過的相對比較系統化介紹性能優化方面的內容,從服務器、作業系統、MySQL、SQL和鎖方面整體梳理了MySQL性能優化的方方面面,相關案例都具有代表性,很值得參考和驗證,也希望讀者能參考案例來驗證和測驗,并舉一反三,結合自己環境的實際場景構建起性能改進的方法論,

第25章性能調優金字塔,本章介紹的三種調優方法是按照金字塔的調優順序排列的,一般來說,自底向上調優的效果是成反比的,而越往下層調優效果越好,但是難度也越大,

第26章SQL陳述句執行慢真偽難辨,本章將介紹一種比較通用的判斷SQL陳述句執行慢到底是不是資料庫回應時間導致的方法來解決這個問題,

第28章每隔45天的MySQL性能低谷,本章將介紹資料庫最核心依賴的作業系統VO存盤系統的相關知識,并通過RAID卡導致性能下降的案例介紹分析和解決ⅣO性能問題的一般方法,這對于絕大部分采用自有硬體搭建MySQL服務的DBA來說非常有參考意義,

第32章MySQL掛起診斷思路,本章通過MySQL性能陡降為O無法繼續提供服務的案例介紹了在極端情況下的問題的解決思路和診斷方法,讀者可以借鑒對應思路盡量縮減資料庫故障時間,

第33章硬體和系統調優,本章匯總了之前硬體或者作業系統對MySQL性能影響的相關因素并分類列出了從底層優化資料庫性能的相關方法,

第34章并發洗掉資料造成死鎖,在第20章中講解了MySQL中加鎖的分析,我們還需要將這些理論知識運用到實際中,從本章開始將介紹幾個死鎖案例,下面我們先介紹如何查看MySQL中的死鎖日志,

工具篇

sysbench不僅可用于資料庫基準測驗,也可用于服務器的其他作業負載基準測驗,本章主要以1.0版本為例介紹sysbench,在新的Release版本下,sysbench新增與優化了如下一些特性,
- 可以收集有關速率和延遲時間的統計資料,包括延遲百分比和直方圖,
- 低開銷,可以執行數以千計的并發執行緒,能夠每秒產生和跟蹤數億個事件,
- 通過Lua腳本輕松實作了預定義的鉤子,以創建新的測驗基準,

第45章mysqladmin和innotop工具詳解,mysqladmin是一個可以列印一些Debug(除錯)資訊,以及按照一定頻率列印MySQL狀態變數差異等狀態值的工具,innotop是一個互動式的能夠列印更多的MySQL狀態資訊的工具,在排查一些問題時,通常可以使用它們來實時列印一些狀態資訊,以便更高效地找到問題的原因,下面我們將對這兩個工具分別進行詳細介紹,


47章Percona Toolkit常用工具詳解,本章部分內容參考自Percona Toolkit 3.0.12用戶手冊,另外,本章只介紹可輔助性能排查的常用工具,如有其他需求,請自行查看Percona Toolkit 3.0.12用戶手冊,

第49章,隨著互聯網的迅速發展,在MySOL資料庫中存放的資料量迅速增加,MySQL資料庫的并發訪問量也迅速增加,這時mysqldump備份工具的一些缺點就開始暴露出來,于是,一款更高效且對應用影響更小的備份工具就成了MySQL用戶們的共同訴求,這時Percona XtraBackup應運而生,下面我們將對XtraBackup備份工具進行詳細介紹,

在第49章中,我們提到使用xtrabackup工具可以更高效地執行備份,且可以做到備份時對應用的影響更小,但是它是通過復制檔案系統中的物理檔案進行備份的工具,對于一些需要并行匯入匯出純文本的場景無法覆寫,下面我們將對mydumper工具包中的mydumper和lmyloader命令進行詳細介紹,

資料庫管理人員或多或少都會碰到一些誤操作資料的情況,這個時候,只需要一個小小的閃回工具,將誤操作那一小部分資料在資料庫中反向操作即可恢復原狀,
對于MySQL而言,目前有一些現成的開源閃回工具,完全不需要自己重復“造輪子”,其中使用得比較多的要數binlog2sqL和flashback了,下面我們將對這兩款主流的閃回工具進行詳細介紹,

獲取方式
點贊+關注+轉發,掃描小編的即可免費獲取這份《Mysql性能優化金字塔法則》檔案!!!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/203987.html
標籤:AI
