1. 程式人生 > >《高效能MySQL(第3版)》【PDF】下載

《高效能MySQL(第3版)》【PDF】下載

     內容簡介

《高效能mysql(第3版)》是mysql 領域的經典之作,擁有廣泛的影響力。第3
版更新了大量的內容,不但涵蓋了最新mysql
5.5版本的新特性,也講述了關於固態盤、高可擴充套件性設計和雲端計算環境下的資料庫相關的新內容,原有的基準測試和效能優化部分也做了大量的擴充套件和補充。全書共分為16
章和6 個附錄,內容涵蓋mysql 架構和歷史,基準測試和效能剖析,資料庫軟硬體效能優化,複製、備份和恢復,高可用與高可擴充套件性,以及雲端的mysql
和mysql相關工具等方面的內容。每一章都是相對獨立的主題,讀者可以有選擇性地單獨閱讀。

《高效能mysql(第3版)》不但適合資料庫管理員(dba)閱讀,也適合開發人員參考學習。不管是資料庫新手還是專家,相信都能從本書有所收穫。

    作者簡介

Baron Schwartz 是一位軟體工程師,居住在弗吉尼亞州的Charlottesville,網路常用名是Xaprb,這是按照QWERTY 鍵盤的順序在Dvorak 鍵盤上打出來的名字。在不忙於解決有趣的程式設計挑戰時,Baron 會和他的妻子Lynn 以及小狗Carbon 一起享受閒暇的時光。他有一個軟體工程方面的部落格,地址是http://www.xaprb.com/blog/

Peter Zaitsev 曾經是MySQL
AB 公司高效能組的經理,目前在運作mysqlperformance

blog.com 網站。他擅長於幫助那些每天有數以百萬計訪問量的網站的管理員解決問題,這些網站通常需要幾百臺機器來處理TB
級的資料。他常常為了解決一個問題而不停地升級硬體和軟體(比如查詢優化)。Peter 還經常在各種會議上演講。

Vadim Tkachenko 曾經是MySQL AB 公司的效能工程師。作為一名在多執行緒程式設計和同步方面的專家,他的主要工作是基準測試、效能剖析,以及找出系統的效能瓶頸。他還在效能監控和調優方面做了一些工作,使得MySQL
在多核機器上有更好的可擴充套件性。

    譯者簡介

寧海元 有超過十年的資料庫管理經驗,從最初到SQL Server 2000到Oracle到MySQL,擅長資料庫高可用架構,效能優化和故障診斷。2007年加入淘寶,帶領淘寶DBA團隊支撐了淘寶業務的快速增長,完成了資料庫的垂直拆分、水平拆分,遷移到MySQL體系等主要工作。目前專注於無線資料領域。網路常用名NinGoo,個人部落格:

http://www.ningoo.net

周振興 畢業於北京師範大學數學系,09年加入淘寶資料庫團隊負責MySQL運維管理工作,有豐富的MySQL效能優化、Troubleshooting經驗,對MySQL主要模組的實現和原理有深入的研究,經歷淘寶MySQL例項從30到3000的發展,對系統架構、高可用環境規劃都有深入理解。個人部落格:http://orczhou.com

彭立勳 2010年大學畢業後加入阿里巴巴運維部。作為一名MySQL
DBA,在運維MySQL的過程中,對MySQL和InnoDB的一些功能和缺陷就進行了補充,編寫了多主複製和資料閃回等補丁。目前在阿里集團核心系統研發部資料庫組,專注於MySQL資料庫相關的開發工作。後來一些補丁被MySQL之父Mony看中,成為MariaDB提交組(Maria-captains)成員,並且把多主複製,執行緒記憶體監控等補丁合併到了MariaDB
10.0版本。

翟衛祥 畢業於武漢大學,研究生階段從事資料庫相關研究。畢業後就職於阿里巴巴集團資料庫技術團隊至今,主要負責阿里內部MySQL程式碼分支維護,包括MySQL
Bug Fix及新特性開發。對MySQL核心有一定的研究。

劉輝 2008年畢業於西安電子科技大學計算機系,碩士學位。2011年加入阿里巴巴集團資料庫技術團隊,花名希羽,MySQL核心開發工程師。

    目錄

推薦序 xxiii
前言
xxv
第1
章 mysql
架構與歷史 1
1.1
mysql 邏輯架構 1
1.1.1
連線管理與安全性2
1.1.2
優化與執行 3
1.2
併發控制 3
1.2.1
讀寫鎖 4
1.2.2
鎖粒度 4
1.3
事務6
1.3.1
隔離級別 8
1.3.2
死鎖 9
1.3.3
事務日誌 10
1.3.4
mysql 中的事務 10
1.4
多版本併發控制 12
1.5
mysql 的儲存引擎 13
1.5.1
innodb 儲存引擎 16
1.5.2
myisam 儲存引擎 17
1.5.3
mysql 內建的其他儲存引擎 19
.1.5.4
第三方儲存引擎 22
1.5.5
選擇合適的引擎 24
1.5.6
轉換表的引擎 27
1.6
mysql 時間線(timeline) 29
1.7
mysql 的開發模式 32
1.8
總結 33
第2
章 mysql
基準測試 35
2.1
為什麼需要基準測試 35
2.2
基準測試的策略 37
2.2.1
測試何種指標 38
2.3
基準測試方法 40
2.3.1
設計和規劃基準測試 41
2.3.2
基準測試應該執行多長時間 42
2.3.3
獲取系統性能和狀態 43
2.3.4
獲得準確的測試結果 44
2.3.5
執行基準測試並分析結果 46
2.3.6
繪圖的重要性 47
2.4
基準測試工具 49
2.4.1
整合式測試工具 49
2.4.2
單元件式測試工具 50
2.5
基準測試案例 52
2.5.1
http_load 53
2.5.2
mysql 基準測試套件 54
2.5.3
sysbench 55
2.5.4
資料庫測試套件中的dbt2
tpc-c 測試 60
2.5.5
percona 的tpcc-mysql 測試工具 63
2.6
總結 65
第3
章 伺服器效能剖析 67
3.1
效能優化簡介 67
3.1.1
通過效能剖析進行優化 69
3.1.2
理解效能剖析 71
3.2
對應用程式進行效能剖析 72
3.2.1
測量php
應用程式 74
3.3
剖析mysql
查詢 77
3.3.1
剖析伺服器負載 77
3.3.2
剖析單條查詢 81
3.3.3
使用效能剖析 87
3.4
診斷間歇性問題 88
3.4.1
單條查詢問題還是伺服器問題 89
3.4.2
捕獲診斷資料 93
3.4.3
一個診斷案例 98
3.5
其他剖析工具 106
3.5.1
使用user_statistics 表
106
3.5.2
使用strace
107
3.6
總結 108
第4
章 schema
與資料型別優化 111
4.1
選擇優化的資料型別 111
4.1.1
整數型別 113
4.1.2
實數型別 113
4.1.3
字串型別 114
4.1.4
日期和時間型別 121
4.1.5
位資料型別 123
4.1.6
選擇識別符號(identifier) 125
4.1.7
特殊型別資料 127
4.2
mysql schema 設計中的陷阱 127
4.3
正規化和反正規化 129
4.3.1
正規化的優點和缺點 130
4.3.2
反正規化的優點和缺點 130
4.3.3
混用正規化化和反正規化化 131
4.4
快取表和彙總表 132
4.4.1
物化檢視 134
4.4.2
計數器表 135
4.5
加快alter table
操作的速度 136
4.5.1
只修改.frm
檔案 137
4.5.2
快速建立myisam
索引 139
4.6
總結 140

...