注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡數(shù)據(jù)庫SQL SeverMySQL技術內幕:InnoDB存儲引擎(第2版)

MySQL技術內幕:InnoDB存儲引擎(第2版)

MySQL技術內幕:InnoDB存儲引擎(第2版)

定 價:¥79.00

作 者: 姜承堯著
出版社: 機械工業(yè)出版社
叢編項:
標 簽: SQL 計算機/網(wǎng)絡 數(shù)據(jù)庫

ISBN: 9787111422068 出版時間: 2013-05-21 包裝: 平裝
開本: 16 頁數(shù): 436 字數(shù):  

內容簡介

  《MySQL技術內幕:InnoDB存儲引擎》由國內資深MySQL專家親自執(zhí)筆,國內外多位數(shù)據(jù)庫專家聯(lián)袂推薦。作為國內唯一一本關于InnoDB的專著,本書的第1版廣受好評,第2版不僅針對最新的MySQL 5.6對相關內容進行了全面的補充,還根據(jù)廣大讀者的反饋意見對第1版中存在的不足進行了完善,全書大約重寫了50%的內容。本書從源代碼的角度深度解析了InnoDB的體系結構、實現(xiàn)原理、工作機制,并給出了大量最佳實踐,能幫助你系統(tǒng)而深入地掌握InnoDB,更重要的是,它能為你設計管理高性能、高可用的數(shù)據(jù)庫系統(tǒng)提供絕佳的指導?!禡ySQL技術內幕:InnoDB存儲引擎》一共10章,首先宏觀地介紹了MySQL的體系結構和各種常見的存儲引擎以及它們之間的比較;接著以InnoDB的內部實現(xiàn)為切入點,逐一詳細講解了InnoDB存儲引擎內部的各個功能模塊的實現(xiàn)原理,包括InnoDB存儲引擎的體系結構、內存中的數(shù)據(jù)結構、基于InnoDB存儲引擎的表和頁的物理存儲、索引與算法、文件、鎖、事務、備份與恢復,以及InnoDB的性能調優(yōu)等重要的知識;最后對InnoDB存儲引擎源代碼的編譯和調試做了介紹,對大家閱讀和理解InnoDB的源代碼有重要的指導意義。本書適合所有希望構建和管理高性能、高可用性的MySQL數(shù)據(jù)庫系統(tǒng)的開發(fā)者和DBA閱讀。

作者簡介

  姜承堯(David Jiang),資深MySQL數(shù)據(jù)庫專家,擅長于數(shù)據(jù)庫的故障診斷、性能調優(yōu)、容災處理、高可用和高擴展研究,同時一直致力于MySQL數(shù)據(jù)庫底層實現(xiàn)原理的研究和探索。此外,對高性能數(shù)據(jù)庫和數(shù)據(jù)倉庫也有深刻而獨到的理解。曾為MySQL編寫了許多開源工具和性能擴展補丁,如廣受好評的InnoDB引擎二級緩存項目。現(xiàn)任網(wǎng)易杭州研究院技術經(jīng)理一職,負責MySQL數(shù)據(jù)庫的內核開發(fā),參與設計與開發(fā)MySQL數(shù)據(jù)庫在網(wǎng)易云環(huán)境中的應用。曾擔任久游網(wǎng)數(shù)據(jù)庫工程部經(jīng)理,曾領導并參與了多個大型核心數(shù)據(jù)庫的設計、實施、管理和維護,實戰(zhàn)經(jīng)驗非常豐富。活躍于開源數(shù)據(jù)庫以及開源軟件領域,是著名開源社區(qū)ChinaUnix MySQL版塊的版主,熱衷于與網(wǎng)友分享自己的心得和體會,深受社區(qū)歡迎。除本書外,他還撰寫了《MySQL技術內幕:SQL編程》,是本書的姊妹篇,頗受好評。

圖書目錄

目  錄
推薦序
前言
第1章 MySQL體系結構和存儲引擎1
1.1 定義數(shù)據(jù)庫和實例1
1.2 MySQL體系結構3
1.3 MySQL存儲引擎5
1.3.1 InnoDB存儲引擎6
1.3.2 MyISAM存儲引擎7
1.3.3 NDB存儲引擎7
1.3.4 Memory存儲引擎8
1.3.5 Archive存儲引擎9
1.3.6 Federated存儲引擎9
1.3.7 Maria存儲引擎9
1.3.8 其他存儲引擎9
1.4 各存儲引擎之間的比較10
1.5 連接MySQL13
1.5.1 TCP/IP13
1.5.2 命名管道和共享內存15
1.5.3 UNIX域套接字15
1.6 小結15
第2章 InnoDB存儲引擎17
2.1 InnoDB存儲引擎概述17
2.2 InnoDB存儲引擎的版本18
2.3 InnoDB體系架構19
2.3.1 后臺線程19
2.3.2 內存22
2.4 Checkpoint技術32
2.5 Master Thread工作方式36
2.5.1 InnoDB 1.0.x版本之前的Master Thread36
2.5.2 InnoDB1.2.x版本之前的Master Thread41
2.5.3 InnoDB1.2.x版本的Master Thread45
2.6 InnoDB關鍵特性45
2.6.1 插入緩沖46
2.6.2 兩次寫53
2.6.3 自適應哈希索引55
2.6.4 異步IO57
2.6.5 刷新鄰接頁58
2.7 啟動、關閉與恢復58
2.8 小結61
第3章 文件62
3.1 參數(shù)文件62
3.1.1 什么是參數(shù)63
3.1.2 參數(shù)類型64
3.2 日志文件65
3.2.1 錯誤日志66
3.2.2 慢查詢日志67
3.2.3 查詢日志72
3.2.4 二進制日志73
3.3 套接字文件83
3.4 pid文件83
3.5 表結構定義文件84
3.6 InnoDB存儲引擎文件84
3.6.1 表空間文件85
3.6.2 重做日志文件86
3.7 小結90
第4章 表91
4.1 索引組織表91
4.2 InnoDB邏輯存儲結構93
4.2.1 表空間93
4.2.2 段95
4.2.3 區(qū)95
4.2.4 頁101
4.2.5 行101
4.3 InnoDB行記錄格式102
4.3.1 Compact行記錄格式103
4.3.2 Redundant行記錄格式106
4.3.3 行溢出數(shù)據(jù)110
4.3.4 Compressed和Dynamic行記錄格式117
4.3.5 CHAR的行結構存儲117
4.4 InnoDB數(shù)據(jù)頁結構120
4.4.1 File Header121
4.4.2 Page Header122
4.4.3 Infimum和Supremum Records123
4.4.4 User Records和Free Space123
4.4.5 Page Directory124
4.4.6 File Trailer124
4.4.7 InnoDB數(shù)據(jù)頁結構示例分析125
4.5 Named File Formats機制132
4.6 約束134
4.6.1 數(shù)據(jù)完整性134
4.6.2 約束的創(chuàng)建和查找135
4.6.3 約束和索引的區(qū)別137
4.6.4 對錯誤數(shù)據(jù)的約束137
4.6.5 ENUM和SET約束139
4.6.6 觸發(fā)器與約束139
4.6.7 外鍵約束142
4.7 視圖144
4.7.1 視圖的作用144
4.7.2 物化視圖147
4.8 分區(qū)表152
4.8.1 分區(qū)概述152
4.8.2 分區(qū)類型155
4.8.3 子分區(qū)168
4.8.4 分區(qū)中的NULL值172
4.8.5 分區(qū)和性能176
4.8.6 在表和分區(qū)間交換數(shù)據(jù)180
4.9 小結182
第5章 索引與算法183
5.1 InnoDB存儲引擎索引概述183
5.2 數(shù)據(jù)結構與算法184
5.2.1 二分查找法184
5.2.2 二叉查找樹和平衡二叉樹185
5.3 B+樹187
5.3.1 B+樹的插入操作187
5.3.2 B+樹的刪除操作190
5.4 B+樹索引191
5.4.1 聚集索引192
5.4.2 輔助索引196
5.4.3 B+樹索引的分裂200
5.4.4 B+樹索引的管理202
5.5 Cardinality值210
5.5.1 什么是Cardinality210
5.5.2 InnoDB存儲引擎的Cardinality統(tǒng)計212
5.6 B+樹索引的使用215
5.6.1 不同應用中B+樹索引的使用215
5.6.2 聯(lián)合索引215
5.6.3 覆蓋索引218
5.6.4 優(yōu)化器選擇不使用索引的情況219
5.6.5 索引提示221
5.6.6 Multi-Range Read優(yōu)化223
5.6.7 Index Condition Pushdown(ICP)優(yōu)化226
5.7 哈希算法227
5.7.1 哈希表228
5.7.2 InnoDB存儲引擎中的哈希算法229
5.7.3 自適應哈希索引230
5.8 全文檢索231
5.8.1 概述231
5.8.2 倒排索引232
5.8.3 InnoDB全文檢索233
5.8.4 全文檢索240
5.9 小結248
第6章 鎖249
6.1 什么是鎖249
6.2 lock與latch250
6.3 InnoDB存儲引擎中的鎖252
6.3.1 鎖的類型252
6.3.2 一致性非鎖定讀258
6.3.3 一致性鎖定讀261
6.3.4 自增長與鎖262
6.3.5 外鍵和鎖264
6.4 鎖的算法265
6.4.1 行鎖的3種算法265
6.4.2 解決Phantom Problem269
6.5 鎖問題271
6.5.1 臟讀271
6.5.2 不可重復讀273
6.5.3 丟失更新274
6.6 阻塞276
6.7 死鎖278
6.7.1 死鎖的概念278
6.7.2 死鎖概率280
6.7.3 死鎖的示例281
6.8 鎖升級283
6.9 小結284
第7章 事務285
7.1 認識事務285
7.1.1 概述285
7.1.2 分類287
7.2 事務的實現(xiàn)294
7.2.1 redo294
7.2.2 undo305
7.2.3 purge317
7.2.4 group commit319
7.3 事務控制語句323
7.4 隱式提交的SQL語句328
7.5 對于事務操作的統(tǒng)計329
7.6 事務的隔離級別330
7.7 分布式事務335
7.7.1 MySQL數(shù)據(jù)庫分布式事務335
7.7.2 內部XA事務340
7.8 不好的事務習慣341
7.8.1 在循環(huán)中提交341
7.8.2 使用自動提交343
7.8.3 使用自動回滾344
7.9 長事務347
7.10 小結349
第8章 備份與恢復350
8.1 備份與恢復概述350
8.2 冷備352
8.3 邏輯備份353
8.3.1 mysqldump353
8.3.2 SELECT...INTO OUTFILE360
8.3.3 邏輯備份的恢復362
8.3.4 LOAD DATA INFILE362
8.3.5 mysqlimport364
8.4 二進制日志備份與恢復366
8.5 熱備367
8.5.1 ibbackup367
8.5.2 XtraBackup368
8.5.3 XtraBackup實現(xiàn)增量備份370
8.6 快照備份372
8.7 復制376
8.7.1 復制的工作原理376
8.7.2 快照+復制的備份架構380
8.8 小結382
第9章 性能調優(yōu)383
9.1 選擇合適的CPU383
9.2 內存的重要性384
9.3 硬盤對數(shù)據(jù)庫性能的影響387
9.3.1 傳統(tǒng)機械硬盤387
9.3.2 固態(tài)硬盤387
9.4 合理地設置RAID389
9.4.1 RAID類型389
9.4.2 RAID Write Back功能392
9.4.3 RAID配置工具394
9.5 操作系統(tǒng)的選擇397
9.6 不同的文件系統(tǒng)對數(shù)據(jù)庫性能的影響398
9.7 選擇合適的基準測試工具399
9.7.1 sysbench399
9.7.2 mysql-tpcc405
9.8 小結410
第10章 InnoDB存儲引擎源代碼的編譯和調試411
10.1 獲取InnoDB存儲引擎源代碼411
10.2 InnoDB源代碼結構413
10.3 MySQL 5.1版本編譯和調試InnoDB源代碼415
10.3.1 Windows下的調試415
10.3.2 Linux下的調試418
10.4 cmake方式編譯和調試InnoDB存儲引擎423
10.5 小結424

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號