预购商品
书目分类
特别推荐
本書一共分為3篇:基礎篇(上)、案例篇和工具篇(下)。 基礎篇: 從理論基礎和基本原理層面介紹了 MySQL 的安裝與設定、升級和架構,information_schema、sys_schema、performance_schema 和 mysql_schema,MySQL複製、MySQL 交易、SQL 語句最佳化及架構設計基礎知識。 案例篇: 從硬體和系統、MySQL 架構等方面提出了效能最佳化的十幾個案例,包括:效能測試的基本最佳化概念和最需要關注的效能指標解釋、對 SQL 語句執行慢的基本定位、避免 x86 可用性的一般性方法、節能模式會怎樣影響效能、I/O 儲存作為資料庫最重要的依賴是如何影響資料庫效能的、主備複製不一致可能有哪些原因、字元集不一致會造成哪些效能問題、在實際場景中鎖的爭用是怎樣的。 工具篇: 介紹了在 MySQL 效能最佳化過程中需要用到的各種工具,包括:dmidecode、top、dstat 等硬體和系統排查工具;FIO、sysbench、HammerDB 等壓力測試工具;mysqldump、XtraBackup 等備份工具;Percona、innotop、Prometheus 等監控工具。 -------------------------------------------------------------------------------- 效能問題: 本書解決 MySQL 資料庫效能問題,某種程度來說,MySQL 資料庫效能最佳化問題是一個平行處理的問題,歸根究柢是鎖和資源爭用的問題。 其實效能最佳化要做的就是下列事情: •瞭解基本原理。找到事情的因果關係和依賴關係,儘量讓不相關的事情能平行進行。 •要事第一。找到目前最重要、最需要最佳化的地方,投入時間和精力,不斷去改進與最佳化。 •切中要害。找到耗費時間最長的地方,想盡辦法縮短其時間。 機械思維和大數據思維: 本書的效能最佳化方法論還是工業革命時代的機械思維,簡而言之,就是尋找因果關係,大膽假設,小心求證。現在已經是資訊時代,理應瞭解什麼是資訊理論,解決問題需要利用大數據思維! 讀者對象: (1)MySQL 初學者。 (2)專門從事 MySQL 工作1~3年的開發人員和運維人員。 (3)資深的 MySQL DBA。
案例篇 第 23 章 效能測試指標和相關術語 23.1 測試目標分類 23.1.1 已知故障資訊採集 23.1.2 預估壓力評測 23.2 效能測試指標 23.2.1 資料庫效能通用「行話」 23.2.2 測試通用術語 23.2.3 範例 23.3 本章小結 第 24 章 歷史問題診斷和現場故障分析 24.1 故障分析和驗證 24.1.1 歷史問題排查 24.1.2 線上問題分析 24.2 故障複現排查 24.3 本章小結 第 25 章 效能調校金字塔 25.1 硬體和系統調校 25.1.1 硬體最佳化 25.1.2 系統最佳化 25.2 MySQL 調校 25.2.1 參數調校 25.2.2 SQL/索引調校 25.3 架構調校 25.4 本章小結 第 26 章 SQL 語句執行慢真假難辨 26.1 概述 26.2 測試環境 26.3 採集封包 26.3.1 採集應用程式伺服器封包 26.3.2 採集資料庫伺服器封包 26.4 解析封包 26.4.1 使用 wireshark 解析封包 26.4.2 使用 tcpdump 解析封包 26.5 本章小結 第 27 章 如何避免三天兩頭更換硬碟、記憶體、主機板 27.1 概述 27.2 伺服器標準化 27.3 上線前燒機 27.3.1 stress 27.3.2 FIO 27.3.3 資料庫燒機 27.4 本章小結 第 28 章 每隔 45 天的 MySQL 效能低谷 28.1 儲存知識小普及 28.1.1 MySQL 儲存系統要求 28.1.2 儲存系統軟體層 28.1.3 儲存系統硬體層 28.2 每隔 45 天的效能抖動 28.3 影響 I/O 效能的三種 RAID 策略 28.3.1 電池充放電 28.3.2 巡讀 28.3.3 一致性檢查 28.4 本章小結 第 29 章 無法自動釋放 MySQL 連接 29.1 環境組態 29.2 問題現象 29.3 診斷分析 29.4 解決方案 29.5 本章小結 第 30 章 查詢 MySQL 偶爾比較慢 30.1 環境組態 30.2 問題現象 30.3 診斷分析 30.4 選擇 VIP 還是 DNS 存取 MySQL 30.4.1 VIP 之殤 30.4.2 DNS 之痛 30.4.3 VIP 切換還是 DNS 切換 30.5 CPU 節能模式 30.6 本章小結 第 31 章 MySQL 最多只允許 214 個連接 31.1 環境組態 31.2 問題現象 31.3 診斷分析 31.4 解決方案 31.5 MySQL 最大連接數為 214 的原始碼解析 31.6 Linux 資源限制 31.6.1 資源拆分和組合 31.6.2 處理程序資源限制 31.6.3 MySQL 內部資源限制 31.7 本章小結 第 32 章 MySQL 掛起診斷概念 32.1 環境組態 32.2 問題現象 32.3 診斷分析 32.4 掛起時先做什麼 32.5 本章小結 第 33 章 硬體和系統調校 33.1 硬體和系統調校概覽 33.2 CPU 33.3 網路 33.4 其他 33.5 本章小結 第 34 章 並行刪除資料造成鎖死 34.1 問題現象 34.2 如何閱讀鎖死日誌 34.3 資料表結構及操作步驟 34.4 本章小結 第 35 章 刪除不存在的資料造成的鎖死 35.1 問題現象 35.2 問題分析 35.3 問題擴展 35.4 資料表結構及操作步驟 35.5 本章小結 第 36 章 插入意向鎖鎖死 36.1 問題現象 36.2 問題分析 36.3 本章小結 第 37 章 分頁查詢最佳化 37.1 問題現象 37.2 最佳化方案 第 38 章 子查詢最佳化——子查詢轉換為連接 38.1 問題現象 38.2 最佳化方案 第 39 章 子查詢最佳化——使用 delete 刪除資料 39.1 問題現象 39.2 最佳化方案 工具篇 第 40 章 常用的硬體規格查看命令詳解 40.1 通用命令 40.1.1 lshw 40.1.2 dmidecode 40.1.3 dmesg 40.2 CPU 相關命令 40.3 磁碟相關命令 40.3.1 smartctl 40.3.2 lsscsi 40.4 網卡相關命令 40.4.1 lspci 40.4.2 ethtool 40.5 HCA 卡相關命令 第 41 章 常用的系統負載查看命令詳解 41.1 top 41.1.1 命令列選項 41.1.2 互動式命令選項 41.1.3 輸出結果解讀 41.2 dstat 41.2.1 命令列選項 41.2.2 輸出結果解讀 41.3 mpstat 41.3.1 命令列選項 41.3.2 輸出結果解讀 41.4 sar 41.4.1 命令列選項 41.4.2 輸出結果解讀 41.5 vmstat 41.5.1 命令列選項 41.5.2 輸出結果解讀 41.6 iostat 41.6.1 命令列選項 41.6.2 輸出結果解釋 41.7 free 41.7.1 命令列選項 41.7.2 輸出結果解讀 41.8 iotop 41.8.1 命令列選項 41.8.2 互動式命令選項 41.8.3 輸出結果解讀 41.9 iftop 41.9.1 命令列選項 41.9.2 互動式命令選項 41.9.3 輸出結果解讀 41.10 iperf 41.10.1 命令列選項 41.10.2 輸出結果解讀 第 42 章 FIO 儲存效能壓測 42.1 安裝 FIO 42.2 測試I/O 效能 42.2.1 隨機寫 42.2.2 循序寫 42.2.3 隨機讀 42.2.4 循序讀 42.2.5 混合隨機讀寫 42.2.6 FIO 設定檔測試 42.3 參數和結果詳解 42.3.1 關鍵參數解釋 42.3.2 設定檔 42.3.3 結果解析 42.4 FIO 測試建議 42.5 課外閱讀 第 43 章 HammerDB 線上交易處理測試 43.1 安裝和配置 HammerDB 43.1.1 下載安裝檔 43.1.2 安裝 HammerDB 43.1.3 安裝 HammerDB GUI 依賴套件 43.2 測試 43.3 課外閱讀 第 44 章 sysbench 資料庫壓測工具 44.1 安裝 sysbench 44.1.1 yum 安裝 44.1.2 RPM 套件安裝 44.1.3 編譯安裝 44.1.4 驗證安裝是否成功 44.2 測試案例 44.2.1 造數 44.2.2 資料庫讀寫測試 44.2.3 清理 44.3 sysbench 參數詳解 44.3.1 sysbench 命令語法 44.3.2 options 44.3.3 testname 44.3.4 command 44.4 資料庫測試輸出資訊詳解 44.4.1 輸出結果概述 44.4.2 版本及關鍵測試參數輸出 44.4.3 中間統計結果輸出 44.4.4 整體統計結果輸出 44.5 課外閱讀 第 45 章 mysqladmin 和 innotop 工具詳解 45.1 mysqladmin 45.1.1 命令列選項 45.1.2 實戰示範 45.2 innotop 45.2.1 安裝 innotop 45.2.2 命令列選項 45.2.3 互動式選項 45.2.4 實戰示範 第 46 章 利用 Prometheus + Grafana 建置炫酷的 MySQL 監控平台 46.1 安裝 Prometheus 46.1.1 下載套裝檔 46.1.2 解壓縮套裝檔 46.1.3 啟動 Prometheus 46.2 安裝 Grafana 46.2.1 下載套裝檔 46.2.2 解壓縮套裝檔 46.2.3 啟動 Grafana 46.2.4 在 Grafana 匯入 grafana-dashboards 46.3 監控節點部署 46.3.1 增加主機監控 46.3.2 增加 MySQL 監控 46.3.3 監控 Dashboard 切換 第 47 章 Percona Toolkit 常用工具詳解 47.1 pt-query-digest 47.1.1 命令列選項 47.1.2 實戰展示 47.2 pt-ioprofile 47.2.1 命令列選項 47.2.2 實戰展示 47.3 pt-index-usage 47.3.1 命令列選項 47.3.2 實戰展示 47.4 pt-duplicate-key-checker 47.4.1 命令列選項 47.4.2 實戰展示 47.5 pt-mysql-summary/pt-summary 47.5.1 pt-mysql-summary 47.5.2 pt-summary 47.6 pt-pmp 47.6.1 命令列選項 47.6.2 實戰展示 47.7 pt-stalk 47.7.1 命令列選項 47.7.2 實戰展示 47.8 pt-sift 47.8.1 命令列選項 47.8.2 實戰展示 第 48 章 MySQL 主流備份工具 mysqldump 詳解 48.1 簡介 48.2 原理 48.3 命令列選項 48.3.1 連接選項 48.3.2 檔案選項 48.3.3 DDL 選項 48.3.4 偵錯選項 48.3.5 說明選項 48.3.6 國際化選項——與字元集相關的選項 48.3.7 複製選項 48.3.8 輸出格式化選項 48.3.9 過濾選項 48.3.10 效能選項 48.3.11 交易選項 48.3.12 組合選項 48.4 實戰展示 48.4.1 完全備份與復原 48.4.2 增量備份與復原 48.4.3 建置主備複製架構 48.4.4 複製備援資料庫 48.4.5 指定資料庫、資料表備份與復原 48.4.6 純文字備份與復原 第 49 章 MySQL 主流備份工具 XtraBackup 詳解 49.1 簡介 49.2 原理 49.3 命令列選項 49.4 實戰展示 49.4.1 完全備份與恢復 49.4.2 增量備份與恢復 49.4.3 基於時間點的恢復 49.4.4 建置主備複製架構 49.4.5 複製備援資料庫 第 50 章 MySQL 主流備份工具 mydumper 詳解 50.1 簡介 50.2 原理 50.3 命令列選項 50.3.1 mydumper 50.3.2 myloader 50.4 實戰展示 50.4.1 安裝 mydumper 50.4.2 備份與恢復 第 51 章 MySQL 主流閃回工具詳解 51.1 閃回工具介紹 51.2 binlog2sql 51.2.1 安裝和使用要求 51.2.2 命令列選項 51.2.3 實戰展示 51.2.4 使用限制與注意事項 51.3 MyFlash 51.3.1 安裝 MyFlash 51.3.2 命令列選項 51.3.3 實戰展示
作者簡介 李春 原阿里巴巴 MySQL DBA 團隊技術 Leader,全程參與阿里資料庫架構從 Oracle 遷移到 MySQL 的過程,參與分散式中介軟體 Cobar 設計。現為沃趣科技聯合創始人&首席架構師,負責 MySQL、基礎軟體及部分關鍵組件的技術選型、風險評估等。 羅小波 沃趣科技高級資料庫工程師,主要負責 MySQL 產品的資料庫支撐與售後二線支撐。曾參與版本發布系統、輕量級監控系統、運維管理平台、資料庫管理平台的設計與編寫,熟悉 MySQL 體系結構,Innodb 存儲引擎,喜好專研開源技術,多次在公開場合做過線下線上資料庫專題分享,發表過多篇與資料庫相關的研究文章。 董紅禹 沃趣科技 MySQL DBA,為多家大型企業進行過故障解決、架構設計、效能最佳化,例如中信證券、浙江農信、陝西農信、郵儲銀行等。規劃並實施了浙江農信互聯網核心金融平台。
最近浏览商品
客服公告
热门活动
订阅电子报