MySQL內(nèi)核 InnoDB存儲引擎 卷1 (姜承堯) 中文PDF掃描版[131MB]
131.2MB / 09-21
MySQL技術內(nèi)幕:InnoDB存儲引擎(第2版) 帶目錄書簽 pdf版[39MB]
39.3MB / 02-01
-
MySQL8.4中文手冊 官方中英文PDF版 mysql / 22.8MB
-
MySQL從入門到項目實踐(超值版) (聚慕課教育) 完整pdf掃描版[314 mysql / 314.8MB
-
MySQL技術精粹:架構、高級特性、性能優(yōu)化與集群實戰(zhàn) 中文pdf掃描 mysql / 271MB
-
MySQL8.0安裝手冊 完整版PDF mysql / 727KB
-
MySQL入門+進階資源合集 完整版PDF mysql / 6.63MB
-
冬季實戰(zhàn)營第三期:MySQL數(shù)據(jù)庫進階實戰(zhàn) 完整版PDF mysql / 2.42MB
-
MySQL大佬姜承堯課程筆記 (49天全) PDF完整版 mysql / 185MB
-
-
MySQL8.0數(shù)據(jù)庫管理與應用 完整PDF版 mysql / 30.8MB
-
MySQL5.7學習筆記 完整版PDF mysql / 15.1MB
詳情介紹
MySQL 技術內(nèi)幕 : InnoDB存儲引擎 內(nèi)容簡介
本書是國內(nèi)目前唯一的一本關于innodb的著作,由資深mysql專家親自執(zhí)筆,中外數(shù)據(jù)庫專家聯(lián)袂推薦,權威性毋庸置疑。
內(nèi)容深入,從源代碼的角度深度解析了innodb的體系結構、實現(xiàn)原理、工作機制,并給出了大量最佳實踐,能幫助你系統(tǒng)而深入地掌握innodb,更重要的是,它能為你設計和管理高性能、高可用的數(shù)據(jù)庫系統(tǒng)提供絕佳的指導。注重實戰(zhàn),全書輔有大量的案例,可操作性極強。
全書首先全景式地介紹了mysql獨有的插件式存儲引擎,分析了mysql的各種存儲引擎的優(yōu)勢和應用環(huán)境;接著以innodb的內(nèi)部實現(xiàn)為切入點,逐一
詳細講解了innodb存儲引擎內(nèi)部的各個功能模塊,包括innodb存儲引擎的體系結構、內(nèi)存中的數(shù)據(jù)結構、基于innodb存儲引擎的表和頁的物理存
儲、索引與算法、文件、鎖、事務、備份,以及innodb的性能調(diào)優(yōu)等重要的知識;最后深入解析了innodb存儲引擎的源代碼結構,對大家閱讀和理解
innodb的源代碼有重要的指導意義。
本書適合所有希望構建和管理高性能、高可用性的mysql數(shù)據(jù)庫系統(tǒng)的開發(fā)者和dba閱讀。
MySQL 技術內(nèi)幕 : InnoDB存儲引擎 目錄
推薦序
前言
致謝
第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 連接mysql 13
1.5.1 tcp/ip 13
1.5.2 命名管道和共享內(nèi)存 14
1.5.3 unix域套接字 15
.1.6 小結 15
第2章 innodb存儲引擎 17
2.1 innodb存儲引擎概述 17
2.2 innodb體系架構 18
2.2.1 后臺線程 19
2.2.2 內(nèi)存 22
2.3 master thread 24
2.3.1 master thread源碼分析 25
2.3.2 master thread的潛在問題 30
2.4 關鍵特性 33
2.4.1 插入緩沖 33
2.4.2 兩次寫 36
2.4.3 自適應哈希索引 38
2.5 啟動、關閉與恢復 39
2.6 innodb plugin = 新版本的innodb存儲引擎 42
2.7 小結 44
第3章 文件 45
3.1 參數(shù)文件 45
3.1.1 什么是參數(shù) 46
3.1.2 參數(shù)類型 47
3.2 日志文件 48
3.2.1 錯誤日志 48
3.2.2 慢查詢?nèi)罩?nbsp;50
3.2.3 查詢?nèi)罩?nbsp;54
3.2.4 二進制日志 55
3.3 套接字文件 64
3.4 pid文件 64
3.5 表結構定義文件 65
3.6 innodb存儲引擎文件 65
3.6.1 表空間文件 66
3.6.2 重做日志文件 67
3.7 小結 70
第4章 表 72
4.1 innodb存儲引擎表類型 72
4.2 innodb邏輯存儲結構 72
4.2.1 表空間 72
4.2.2 段 75
4.2.3 區(qū) 75
4.2.4 頁 82
4.2.5 行 83
4.3 innodb物理存儲結構 83
4.4 innodb行記錄格式 83
4.4.1 compact 行記錄格式 85
4.4.2 redundant 行記錄格式 88
4.4.3 行溢出數(shù)據(jù) 91
4.4.4 compressed與dynamic行記錄格式 98
4.4.5 char的行結構存儲 99
4.5 innodb數(shù)據(jù)頁結構 101
4.5.1 file header 103
4.5.2 page header 104
4.5.3 infimum和supremum記錄 105
4.5.4 user records與freespace 106
4.5.5 page directory 106
4.5.6 file trailer 107
4.5.7 innodb數(shù)據(jù)頁結構示例分析 107
4.6 named file formats 114
4.7 約束 116
4.7.1 數(shù)據(jù)完整性 116
4.7.2 約束的創(chuàng)建和查找 117
4.7.3 約束和索引的區(qū)別 119
4.7.4 對于錯誤數(shù)據(jù)的約束 119
4.7.5 enum和set約束 120
4.7.6 觸發(fā)器與約束 121
4.7.7 外鍵 123
4.8 視圖 125
4.8.1 視圖的作用 125
4.8.2 物化視圖 128
4.9 分區(qū)表 132
4.9.1 分區(qū)概述 132
4.9.2 range分區(qū) 134
4.9.3 list分區(qū) 141
4.9.4 hash分區(qū) 143
4.9.5 key分區(qū) 146
4.9.6 columns分區(qū) 146
4.9.7 子分區(qū) 148
4.9.8 分區(qū)中的null值 152
4.9.9 分區(qū)和性能 155
4.10 小結 159
第5章 索引與算法 160
5.1 innodb存儲引擎索引概述 160
5.2 二分查找法 161
5.3 平衡二叉樹 162
5.4 b+樹 164
5.4.1 b+樹的插入操作 165
5.4.2 b+樹的刪除操作 167
5.5 b+樹索引 169
5.5.1 聚集索引 170
5.5.2 輔助索引 174
5.5.3 b+樹索引的管理 178
5.6 b+樹索引的使用 183
5.6.1 什么時候使用b+樹索引 183
5.6.2 順序讀、隨機讀與預讀取 188
5.6.3 輔助索引的優(yōu)化使用 191
5.6.4 聯(lián)合索引 194
5.7 哈希算法 198
5.7.1 哈希表 199
5.7.2 innodb存儲引擎中的哈希算法 201
5.7.3 自適應哈希索引 201
5.8 小結 203
第6章 鎖 204
6.1 什么是鎖 204
6.2 innodb存儲引擎中的鎖 205
6.2.1 鎖的類型 205
6.2.2 一致性的非鎖定讀操作 211
6.2.3 select … for update & select … lock in share mode 214
6.2.4 自增長和鎖 215
6.2.5 外鍵和鎖 217
6.3 鎖的算法 218
6.4 鎖問題 220
6.4.1 丟失更新 221
6.4.2 臟讀 222
6.4.3 不可重復讀 223
6.5 阻塞 224
6.6 死鎖 227
6.7 鎖升級 229
6.8 小結 229
第7章 事務 230
7.1 事務概述 230
7.2 事務的實現(xiàn) 231
7.2.1 redo 231
7.2.2 undo 233
7.3 事務控制語句 236
7.4 隱式提交的sql語句 241
7.5 對于事務操作的統(tǒng)計 243
7.6 事務的隔離級別 244
7.7 分布式事務 248
7.8 不好的事務習慣 253
7.8.1 在循環(huán)中提交 253
7.8.2 使用自動提交 255
7.8.3 使用自動回滾 256
7.9 小結 258
第8章 備份與恢復 260
8.1 備份與恢復概述 260
8.2 冷備 262
8.3 邏輯備份 263
8.3.1 mysqldump 263
8.3.2 select … into outfile 270
8.3.3 邏輯備份的恢復 272
8.3.4 load data infile 273
8.3.5 mysqlimport 278
8.4 二進制日志備份與恢復 280
8.5 熱備 281
8.5.1 ibbackup 281
8.5.2 xtrabackup 282
8.5.3 xtrabackup實現(xiàn)增量備份 284
8.6 快照備份 286
8.7 復制 291
8.7.1 復制的工作原理 291
8.7.2 快照+復制的備份架構 295
8.8 小結 297
第9章 性能調(diào)優(yōu) 298
9.1 選擇合適的cpu 298
9.2 內(nèi)存的重要性 299
9.3 硬盤對數(shù)據(jù)庫性能的影響 302
9.3.1 傳統(tǒng)機械硬盤 302
9.3.2 固態(tài)硬盤 302
9.4 合理地設置raid 304
9.4.1 raid類型 304
9.4.2 raid write back功能 306
9.4.3 raid配置工具 308
9.5 操作系統(tǒng)的選擇也很重要 311
9.6 不同的文件系統(tǒng)對數(shù)據(jù)庫性能的影響 312
9.7 選擇合適的基準測試工具 313
9.7.1 sysbench 313
9.7.2 mysql-tpcc 320
9.8 小結 324
第10章 innodb存儲引擎源代碼的編譯和調(diào)試 325
10.1 獲取innodb存儲引擎源代碼 325
10.2 innodb源代碼結構 329
10.3 編譯和調(diào)試innodb源代碼 330
10.3.1 windows下的調(diào)試 330
10.3.2 linux下的調(diào)試 333
10.4 小結 338
附錄a secondary buffer pool for innodb 339
附錄b master thread源代碼 342
附錄c doublewrite源代碼 353
附錄d 哈希算法和哈希表源代碼 361
MySQL 技術內(nèi)幕 : InnoDB存儲引擎 前言
過去這些年,我一直在和各種不同的數(shù)據(jù)庫打交道,見證了MySQL從一個小型的關系型數(shù)據(jù)庫發(fā)展成為各大企業(yè)的核心數(shù)據(jù)庫系統(tǒng)的過程,并且參與了一些大大
小小的項目的開發(fā)工作,成功地幫助開發(fā)人員構建了一些可靠、健壯的應用程序。在這個過程中積累了一些經(jīng)驗,正是這些不斷累積的經(jīng)驗賦予了我靈感,于是有了
本書。這本書實際上反映了這些年來我做了哪些事情,匯集了很多同行每天可能都會遇到的一些問題,并給出了解決方案。
MySQL數(shù)據(jù)庫獨有的插件式存儲引擎架構使得它與其他任何數(shù)據(jù)庫都不同,不同的存儲引擎有著完全不同的功能,而InnoDB存儲引擎的存在使得
MySQL躍入了企業(yè)級數(shù)據(jù)庫領域。本書完整地講解了InnoDB存儲引擎中最重要的一些內(nèi)容,即InnoDB的體系結構和工作原理,并結合InnoDB
的源代碼講解了它的內(nèi)部實現(xiàn)機制。
本書不僅介紹了InnoDB存儲引擎的諸多功能和特性,而且還闡述了如何正確地使用這些功能和特性。更重要的是,它還嘗試教大家如何Think
Different。Think
Different是20世紀90年代蘋果公司在其曠日持久的宣傳活動中提出的一個口號,借此來重振公司的品牌,更重要的是改變?nèi)藗儗夹g在日常生活中的
作用的看法。需要注意的是,蘋果的口號不是Think Differently,而是Think
Different。這里的Different是名詞,意味該思考些什么。
很多DBA和開發(fā)人員都相信某些“神話”,然而這些“神話”往往都是錯誤的。無論計算機技術發(fā)展的速度變得多快、數(shù)據(jù)庫的使用變得多么簡單,任何時候
WHY都比WHAT重要。只有真正地理解了內(nèi)部實現(xiàn)原理、體系結構,才能更好地去使用。這正是人類正確思考問題的原則。因此,對于當前出現(xiàn)的技術,盡管學
習應用層面的技術很重要,但更重要的是,應當正確地理解和使用這些技術。
關于這本書,我想實現(xiàn)好幾個目標,但最重要的是想告訴大家如下幾個簡單的觀點:
不要相信任何“神話”,學會自己思考。
不要墨守成規(guī),大部分人都知道的事情可能是錯誤的。
不要相信網(wǎng)上的傳言,去測試,根據(jù)自己的實踐做出決定。
花時間充分地思考,敢于提出質疑。
為什么寫本書
當前有關MySQL的書籍大部分都集中在教讀者如何使用MySQL,例如SQL語句的使用、復制的搭建、數(shù)據(jù)的切分等。沒錯,這對快速掌握和使用MySQL數(shù)據(jù)庫非常有好處,但是真正的數(shù)據(jù)庫工作者需要了解的不僅僅是應用,更多的是內(nèi)部的具體實現(xiàn)。
MySQL數(shù)據(jù)庫獨有的插件式存儲引擎結構使得想要在一本書內(nèi)完整地講解各個存儲引擎變得十分困難。有的書可能偏重于對MyISAM的介紹,有的書則可能
偏重于對InnoDB存儲引擎的介紹。對于初級的DBA來說,這可能會使他們的理解變得更困難。對于大多數(shù)MySQL
DBA和開發(fā)人員來說,他們往往更希望了解作為MySQL企業(yè)級數(shù)據(jù)庫應用的第一存儲引擎—InnoDB。我想在本書中,他們可以找到他們想要的內(nèi)容。
再強調(diào)一遍,任何時候WHY都比WHAT重要。本書從源代碼的角度對InnoDB的存儲引擎的整個體系架構的各個組成部分進行了系統(tǒng)的分析和講解,剖析了InnoDB存儲引擎的核心實現(xiàn)和工作機制,相信這在其他書中是很難找到的。
本書面向的讀者
本書不是一本面向應用的數(shù)據(jù)庫類書籍,也不是一本參考手冊,更不會教你如何在MySQL中使用SQL語句。本書面向那些使用MySQL
InnoDB存儲引擎作為數(shù)據(jù)庫后端開發(fā)應用程序的開發(fā)者和有一定經(jīng)驗的MySQL
DBA。書中的大部分例子都是用SQL語句來展示關鍵特性的,如果想通過本書來了解如何啟動MySQL,如何配置Replication環(huán)境,可能并不能
如愿。不過,通過本書,你將理解InnoDB存儲引擎是如何工作的,它的關鍵特性的功能和作用是什么,以及如何正確地配置和使用這些特性。
如果想更好地使用InnoDB存儲引擎,如果想讓你的數(shù)據(jù)庫應用獲得更好的性能,就請閱讀本書。從某種程度上講,技術經(jīng)理或總監(jiān)也要非常了解數(shù)據(jù)庫,要知
道數(shù)據(jù)庫對于企業(yè)的重要性。如果技術經(jīng)理或總監(jiān)想安排員工參加MySQL數(shù)據(jù)庫技術方面的培訓,完全可以利用本書來“充電”,相信你一定不會失望的。
要想更好地學習本書,要求具備以下條件:
掌握SQL。
掌握基本的MySQL操作。
接觸過一些高級語言,如C、C++、Python或Java。
下載地址
人氣書籍
MySQL入門很簡單 PDF 掃描版[172M]
MYSQL命令大全與MySQl中文手冊CHM版
MYSQL 5.5從零開始學 (劉增杰,張少軍) pdf掃描版
MySQL5.7從入門到精通(劉增杰 著)帶書簽完整版PDF[230MB]
高性能MySQL(第3版)(High Performance MySQL) pdf掃描版
深入理解MySQL (Expert MySQL) 中文高清PDF版
MySQL v5.1參考手冊 (CHM)
掘金小冊:MySQL是怎樣運行的:從根兒上理解MySQL 中文PDF高清版
高性能MySQL(第2版)pdf中文版
MySQL管理之道:性能調(diào)優(yōu)、高可用與監(jiān)控 PDF掃描版[61MB]
下載聲明
☉ 解壓密碼:www.dbjr.com.cn 就是本站主域名,希望大家看清楚,[ 分享碼的獲取方法 ]可以參考這篇文章
☉ 推薦使用 [ 迅雷 ] 下載,使用 [ WinRAR v5 ] 以上版本解壓本站軟件。
☉ 如果這個軟件總是不能下載的請在評論中留言,我們會盡快修復,謝謝!
☉ 下載本站資源,如果服務器暫不能下載請過一段時間重試!或者多試試幾個下載地址
☉ 如果遇到什么問題,請評論留言,我們定會解決問題,謝謝大家支持!
☉ 本站提供的一些商業(yè)軟件是供學習研究之用,如用于商業(yè)用途,請購買正版。
☉ 本站提供的MySQL 技術內(nèi)幕 : InnoDB存儲引擎 PDF掃描版[12MB]資源來源互聯(lián)網(wǎng),版權歸該下載資源的合法擁有者所有。