建立資料庫的步驟:mysql資料庫系統需求分析

前言

和其他資料庫系統相比,MySQL有點與眾不同,它的架構可以在多種不同場景中應用並發揮好的作用,但同時也會帶來一點選擇上的困難。MySQL並不完美,卻足夠靈活,能夠適應高要求的環境,例如Web類應用。同時,MySQL既可以嵌入到應用程序中,也可以支持數據倉庫、內容索引和部署軟體、高可用的冗餘系統、在線事務處理系統(OLTP)等各種應用類型。

五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

成為一名架構師幾乎是所有程序員的夢想,然而在這大數據時代,少了MySQL資料庫的架構系統,也是不會有前途的~~~

今天, 小編就帶來一篇高性能MySQL的秘籍,希望能幫到大家更好地學習。

全書共分為16章和6個附錄,內容涵蓋MySQL架構和歷史,基準測試和性能剖析,資料庫軟硬體性能優化,複製、備份和恢復、高可用與高可擴展性,以及雲端的MySQL和MySQL相關工具等方面的內容。

五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第一部分:概述

第一章:MySQL的架構和歷史

  • MySQL邏輯架構
  • 並發控制
  • 事務
  • 多版本並發控制
  • MySQL的存儲引擎
  • MySQL時間線(Timeline)
  • MySQL的開發模式
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第1章是非常基礎的一章,在更深入地學習之前建議先熟悉一下這部分內容。在有效地使用MySQL之前應當理解它是如何組織的。本章解釋了 MySQL的架構及其存儲引擎的關鍵設計。如果讀者還不太熟悉關於資料庫和事務的基礎知識,本章也可以帶來一點幫助。如果之前已經對其他關係資料庫如Oracle比較熟悉,本章也可以幫助讀者了解MySQL的入門知識。本章還包括了一點MySQL的歷史背景:MySQL ffi著時間的演進、最近的公司所有權更替,以及我們認為比較重要的內容。


第二部分:打造堅實的基礎

第二章:MySQL基準測試

  • 為什麼需要基準測試
  • 基準測試的策略
  • 基準測試方法
  • 基準測試工具
  • 基準測試案例
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第2章討論了基準測試的基礎,例如伺服器可以處理的工作負載的類型、處理特定任務的速度等。基準測試是一項至關重要的技能,可用手評估伺服器在不同負莪下的表現,但也要明白在什麼情況下基準測試不能發揮作用。


第三章:伺服器性能剖析

  • 性能優化簡介
  • 對應用程序進行性能剖析
  • 剖析MySQL查詢
  • 診斷間歇性問題
  • 其他剖析工具
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第3章介紹了我們常用於故障診斷和伺服器性能問題分析的一種面向響應時間的方法。該方法已經被證明可以解決我們曾碰到過的一些極為竦手的問題.當然也可以選擇修改我們所使用的方法(實際上我們的方法也是從Cary Millsap的方法修改而來的),但無論如何,至少不能沒有方法胡亂猜測。


第四章:Schema與數據類型優化

  • 選擇優化的數據類型
  • MySQL schema設計中的陷阱
  • 範式和反範式
  • 緩存表和匯總表
  • 加快ALTER TABLE操作的速度
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第4章涵蓋了不同數據類型的細節差別以及表設計的原則。良好的schema設計原則是普遍適用的,但MySQL有它自己的實現細節要注意。概括來說,儘可能保持任何東西小而簡單總是好的。MySQL喜歡簡單,需要使用資料庫的人應該也同樣會喜歡簡單的原則。


第五章:創建高性能的索引

  • 索引基礎
  • 索引的優點
  • 高性能的索引策略
  • 索案例學習
  • 維護索引和表
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第5章則展開討論了索引,這是資料庫的物理設計。對於索引的深入理解和利用是高效使用MySQL的基礎,相信這一章會經常需要回頭翻看。通過本章可以看到,索引是一個非常複雜的話題! MySQL和存儲引擎訪問數據的方式,加上索引的特性,使得索引成為一個影響數據訪問的有力而靈活的工作(無論數據是在磁碟中還是在內存中)。


第六章:查詢性能優化

  • 為什麼查詢速度會慢
  • 慢查詢基礎:優化數據訪問
  • 重構查詢的方式
  • 查詢執行的基礎
  • MySQL查詢優化器的局限性
  • 查詢優化器的提示(hint)
  • 優化特定類型的查詢
  • 案例學習
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第6章則包含了分析MySQL的查詢是如何執行的,以及如何利用查詢優化器的話題。該章也包含了大量常見類型查詢的例子,演示了MySQL是如何做好工作的,以及如何改寫查詢以利用MySQL的特性。


第七章:MySQL高級特性

  • 分區表
  • 視圖
  • 外鍵約束
  • 在MySQL內部存儲代碼
  • 游標
  • 綁定變數
  • 用戶自定義函數
  • 插件
  • 字符集和校對
  • 全文素引
  • 分散式(XA)事務
  • 查詢緩存
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第7章則在MySQL基礎知識之外介紹了MySQL的高級特性是如何工作的。這章的內容包括分區、存儲引擎、觸發器,以及字符集。MySQL中這些特性的實現可能不同於其他資料庫,可能之前讀者並不清楚這些不同,因此理解它們對於性能可能會帶來新的收益。


第三部分:配置應用程序

第八章:優化伺服器設置

  • MySQL配置的工作原理
  • 什麼不該做
  • 創建MySQL配置文件
  • 配置內存使用
  • 配置MySQL的I/O行為
  • 配置MySQL並發
  • 基於工作負載的配置
  • 完成基本配置
  • 安全和穩定的設置
  • 高級InnoDB設置
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第8章介紹了如何配置MySQL,以便更好地利用硬體,達到更好的可靠性和魯棒性。在閱讀完這一章節之後,你應該有了一個比默認設置好得多的伺服器配置。伺服器應該更快更穩定了,並且除非運行出現了罕見的狀況,都應該沒有必要再去做優化配置的工作了。


第九章:操作系統和硬體優化

  • 什麼限制了MySQL的性能
  • 如何為MySQL選擇CPU
  • 平衡內存和磁碟資源
  • 固態存儲
  • 為備庫選擇硬體
  • RAID性能優化
  • SAN和NAS
  • 使用多磁碟卷
  • 網路配置
  • 選擇操作系統
  • 選擇文件系統
  • 選擇磁碟隊列調度策略
  • 線程
  • 內存交換區
  • 操作系統狀態
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第9章解釋了如何讓操作系統和硬體工作得更好。另外也深入討論了固態硬碟,為高可擴展性應用發揮更好的性能提供了硬體配置的建議。為MySQL選擇和配置硬體,以及根據硬體配置MySQL,並不是什麼神秘的藝術。通常,對於大部分目標需要的都是相同的技巧和知識。當然,也需要知道一些MySQL特有的特點。


第四部分:作為基礎設施組件的MySQL

第十章:複製

  • 複製概述
  • 配置複製
  • 複製的原理
  • 複製拓撲
  • 複製和容量規劃
  • 複製管理和維護
  • 複製的問題和解決方案
  • 複製有多快
  • MySQL複製的高級特性
  • 其他複製技術
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第10章討論了MySQL的殺手級特性:能夠設置多個伺服器從一台主伺服器同步數據。不幸的是,複製可能也是MySQL給很多用戶帶來困擾的一個特性。但實際上不應該發生這樣的情況,本章將告訴你如何讓複製運行得更好。


第十一章:可擴展的MySQL

  • 什麼是可擴展性
  • 擴展MySQL
  • 負裁均衡
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第11章討論了什麼是可擴展性(這和性能不是一回事),應用和系統為什麼會無法擴展,該怎麼改善擴展性。如果能夠正確地處理,MySQL的可擴展性是足以應付任何需求的。


第十二章:高可用性

  • 什麼是高可用性
  • 導致宕機的原因
  • 如何實現高可用性
  • 避免單點失效
  • 故障轉移和故障恢復
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第12章講述的是和可擴展性相關但又完全不同的主題:如何保障MySQL穩定而正確地持續運行。可以通過減少宕機來獲得高可用性,這需要從以下兩個方面來思考:增加兩次故障之間的正常運行時間(MTBF), 或者減少從故障中恢復的時間(MTTR)。


第十三章:雲端的MySQL

  • 雲的優點、缺點和相關誤解
  • MySQL在雲端的經濟價值
  • 雲中的MySQL的可擴展性和高可用性
  • 四種基礎資源
  • MySQL在雲主機上的性能
  • MySQL資料庫即服務(DBaaS)
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第13章將告訴你當MySQL在雲計算環境中運行時會有什麼不同的事情發生。在雲端使用MySQL至少有兩種主流的方法:在雲伺服器上安裝MySQL,或者使用DBaaS服務。MySQL能夠在雲主機.上運行得很好,但云環境中的限制常常會導致更早需要進行數據拆分。並且儘管雲伺服器看起來和你的物理硬體很相似,但可能性能和服務質量要更低。


第十四章:應用層優化

  • 常見問題
  • Web伺服器問題
  • 緩存
  • 拓展MySQL
  • MySQL的替代品
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第14章解釋了什麼是全方位的優化(ul-stack optimization),就是從前端到後端的整體優化,從用戶體驗開始直到資料庫。即使是世界上設計最好、最具可擴展性的架構,如果停電會導致徹底崩潰,無法抵禦惡意攻擊,解決不了應用的bug和程序員的錯誤,以及其他一些災難場景,那就不是什麼好的架構。


第十五章:備份與恢復

  • 為什麼要備份
  • 定義恢復需求
  • 設計MySQL備份方案
  • 管理和備份二進位日誌
  • 備份數據
  • 從備份中恢復
  • 備份和恢復工具
  • 備份腳本化
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第15章討論了MySQL資料庫各種備份與恢復的場景。這些策略可以幫助讀者減少在各種不可抗的硬體失效時的宕機時間,保證在各種災難下的數據最終可恢復。


第十六章:MySQL用戶工具

  • 介面工具
  • 命令行工具集
  • SQL實用集
  • 監測工具
五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

第16章探索了一些可以幫助用戶更有效地管理和監控MySQL伺服器的工具,有些是開源的,也有些是商業的。好的工具對管理MySQL至關重要。推薦使用一些已經可用、廣泛測試過、流行的工具。


書籤介紹

五年資料庫專家,深入剖析高性能MySQL架構系統,不來後悔一輩子

後記

最後,希望關於MySQL內部原理的知識能夠幫助大家解決本篇沒有覆蓋到的一些情況。更希望朋友們能培養發現新問題的洞察力,能學習和實踐合理的方式來設計、維護和診斷基於MySQL的系統。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/219497.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 10:57
下一篇 2024-12-09 10:59

相關推薦

發表回復

登錄後才能評論