對於一個從事 DBA 工作十幾年的「老鳥」來說,你要問我管理資料庫最頭疼的事是啥?我會告訴你,無休止的優化會是很多 DBA 的噩夢,相信這也是很多同行的感受! 為什麼會這樣?是 DBA 的能力不行 ,做不好優化嗎?
本文是關於資料庫優化的專業文章,從文中可以看出資料庫優化不只是 DBA 的事,而是需要所有相關人員在設計、開發測試、運維以及硬體選型等環節相互配合,這樣才能最大可能地提升資料庫的效能。
本文與很多資料庫專著的不同之處就是作者能從一線開發工程師的角度去解讀和探討資料庫優化的思路,同時給出了大量的程式碼範例和參考SQL,使得讀者完全可以根據書中範例一一實踐,有助於加深對資料庫優化的理解。
在閱讀本文的過程中,你也會欣喜地發現,作者在展開篇幅的同時,深入淺出地介紹了很多資料庫的知識點 這些基礎知識對於開發人員理解資料庫的工作原理,以及 DBA 掌握和運維資料庫,都會有巨大幫助!相信本文會幫到很多人。
本文將從目錄、主要內容和讀者物件給大家進行介紹,大家循序漸進的看就可以,你會發現內容越來越深,可以讓你學習到更多的知識。希望本文能夠幫助到大家的學習!
本文分為四大部分。
第一部分為引入篇(第0~1章)。
這部分首先結合我多年的工作經驗,總結了SQL語句優化時可能會面臨的一些困難,然後講述了一些常見的關於SQL優化的誤區,以便讀者正確看待SQL語句優化。
第1章講述了我曾經處理的幾個案例。通過這些活生生的案例,可以讓讀者更直觀地感受到SQL語句優化的重.要性,同時在每企案例後面,我還針對窒例出現的問題進行了總結。
第二部分為原理篇(第2-9章)
第2章講述了SQL語句優化的核心元件——優化器,以及優化的最基礎概念——成本。這部分非常重要,建議初學者仔細閱讀。
第3~6章介紹了和優化相關的幾個重要概念:執行計劃、統計資訊、SQL解析、遊標、繫結變數。這部分較為基礎,建議初學者根據情況選擇閱讀。
第7~8章介紹了SQL語句的實體物件及它們在物理上是如何儲存資料的。這部分對於資料庫結構設計有較大幫助。此外,在對SQL語句進行優化時,也需要考慮相關物件,因為優化措施可能會影響該物件的其他語句,需要統籌考慮。
第9章介紹了Oracle專有的一些SQL語句。使用這些語句有時可以達到意想不到的效果。如果你不考慮資料庫平臺遷移的問題,可以充分利用這些語句。
原理篇是我們是邁入實踐篇的基礎,它幾乎覆蓋了SQL優化相關的所有原理知識。通過對這些內容的學習,讀者可以為後面的SQL優化打下良好的基礎。如果你已經擁有相關知識基礎,可以直接進入實踐篇。
第三部分為SQL篇(第10~16章)。
第10章介紹了一個重要的優化手段——查詢轉換。這章內容相對來說比較難,市面上相關資料較少,可作為重點來看。
第11章介紹了資料物件的存取方式。這章內容非常基礎,也可作為重點來看。
第12~~16章介紹了多種操作及常見的優化手段,包括表關聯、半/反連線、子查詢、排序、並行等。對於這部分內容,讀者可根據實際需求有重點地閱讀。
第四部分為實踐篇(第17~22章)。
第17章針對不同的資料庫,如Oracle及 MySQL等,詳細介紹如何從其結構設計、SQL開發等方面制定一系列的規範,目的是讓一線的架構、研發、運維人員有章可循。
第18章主要分析建立完善的資料庫架構評估模型的方法。通過建立效能基線和業務壓力模型來模擬壓力測試,以及根據測試結果來確定優化方案。根據效能問題的相關特徵,如整體或區域性、偶爾慢還是持續慢等,從語句級、物件級、資料庫級、資料庫架構級、應用架構級、業務架構級等維度逐層分析,找到問題的瓶頸點。
第19章主要介紹勾勒資料庫畫像的方法。資料庫畫像,即依託於現有的資料庫物件、語句、存取特徵、效能表現等進行資料的採集和分析,幫助我們形成對資料庫的基本認知,並據此來制定運維管理策略、技術方案、遷移方案以及工作量等。
第20~22章深度剖析打造資料庫稽核平臺的方法。藉助平臺設定的稽核規則,我們可以快速發現資料庫中潛在的風險。對於研發人員而言,可以藉助平臺來定位問題,並且達到輔助設計和開發工作的目的,對於DBA而言,可以藉助平臺快速掌握多個系統的整體情況,批次篩選低效SQL,以及快速診斷一般性問題。
這份【資料庫高效優化:架構、規範與SQL技巧】共有438頁,需要完整版的小夥伴,可以以下方式來獲取!
1.本文具有以下幾個特點:
2.讀者物件
本文主要講解了與Oracle資料庫的SQL語句優化相關的內容,除了個別Oracle自有的優化特性外,文中介紹的核心優化思想也適用於其他關係型資料庫。文中沒有講解Oracle體系結構和SQL語言本身,這裡假設大部分人已熟悉Oracle和 SQL語言。
具體來說,本文適讀的重點物件包括但不侷限於下列人員:
希望本文能夠幫助到大家的學習,讓大家成長的更快,不斷提升自己的價值!
也希望本文能夠得到大家的喜歡,多多轉發關注不迷路,後面持續更新好文!