日韩精品 中文字幕 动漫,91亚洲午夜一区,在线不卡日本v一区v二区丶,久久九九国产精品自在现拍

注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)數(shù)據(jù)庫(kù)MySQL是怎樣運(yùn)行的:從根兒上理解MySQL

MySQL是怎樣運(yùn)行的:從根兒上理解MySQL

MySQL是怎樣運(yùn)行的:從根兒上理解MySQL

定 價(jià):¥99.00

作 者: 小孩子4919 著
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787115547057 出版時(shí)間: 2020-11-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 456 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《MySQL是怎樣運(yùn)行的:從根兒上理解 MySQL》采用詼諧幽默的表達(dá)方式,對(duì)MySQL的底層運(yùn)行原理進(jìn)行了介紹,內(nèi)容涵蓋了使用MySQL的同學(xué)在求職面試和工作中常見(jiàn)的一些核心概念。總計(jì)22 章,劃分為4個(gè)部分。第1部分介紹了MySQL入門(mén)的一些知識(shí),比如MySQL的服務(wù)器程序和客戶端程序有哪些、MySQL的啟動(dòng)選項(xiàng)和系統(tǒng)變量,以及使用的字符集等。第2部分是本書(shū)后續(xù)章節(jié)的基礎(chǔ),介紹了MySQL的一些基礎(chǔ)知識(shí),比如記錄、頁(yè)面、索引、表空間的結(jié)構(gòu)和用法等。第3部分則與大家在工作中經(jīng)常遇到的查詢優(yōu)化問(wèn)題緊密相關(guān),介紹了單表查詢、連接查詢的執(zhí)行原理,MySQL基于成本和規(guī)則的優(yōu)化具體指什么,并詳細(xì)分析了Explain語(yǔ)句的執(zhí)行結(jié)果。第4部分則是與MySQL中的事務(wù)和鎖相關(guān),介紹了事務(wù)概念的來(lái)源,MySQL是如何實(shí)現(xiàn)事務(wù)的,包括redo日志、undo日志、MVCC、各種鎖的細(xì)節(jié)等。 盡管《MySQL是怎樣運(yùn)行的:從根兒上理解 MySQL》在寫(xiě)作時(shí)參考的MySQL源代碼版本是5.7.22,但是大部分內(nèi)容與具體的版本號(hào)并沒(méi)有多大關(guān)系。無(wú)論是很早之前就已身居MySQL專家的人員,還是希望進(jìn)一步提升技能的DBA,甚至是三五年后才會(huì)入行的“萌新”,本書(shū)都是他們徹底了解MySQL運(yùn)行原理的優(yōu)秀圖書(shū)。

作者簡(jiǎn)介

暫缺《MySQL是怎樣運(yùn)行的:從根兒上理解MySQL》作者簡(jiǎn)介

圖書(shū)目錄

第0章 楔子——閱讀前必看 1
第 1章 裝作自己是個(gè)小白——初識(shí)MySQL 3
1.1 MySQL的客戶端/服務(wù)器架構(gòu) 3
1.2 MySQL的安裝 3
1.3 啟動(dòng)MySQL服務(wù)器程序 5
1.3.1 在類UNIX系統(tǒng)中啟動(dòng)服務(wù)器程序 5
1.3.2 在Windows系統(tǒng)中啟動(dòng)服務(wù)器程序 6
1.4 啟動(dòng)MySQL客戶端程序 7
1.5 客戶端與服務(wù)器連接的過(guò)程 10
1.5.1 TCP/IP 10
1.5.2 命名管道和共享內(nèi)存 10
1.5.3 UNIX域套接字 11
1.6 服務(wù)器處理客戶端請(qǐng)求 11
1.6.1 連接管理 12
1.6.2 解析與優(yōu)化 12
1.6.3 存儲(chǔ)引擎 14
1.7 常用存儲(chǔ)引擎 14
1.8 關(guān)于存儲(chǔ)引擎的一些操作 16
1.8.1 查看當(dāng)前服務(wù)器程序支持的存儲(chǔ)引擎 16
1.8.2 設(shè)置表的存儲(chǔ)引擎 16
1.9 總結(jié) 17
第 2章 MySQL的調(diào)控按鈕——啟動(dòng)選項(xiàng)和系統(tǒng)變量 19
2.1 啟動(dòng)選項(xiàng)和配置文件 19
2.1.1 在命令行上使用選項(xiàng) 19
2.1.2 配置文件中使用選項(xiàng) 21
2.1.3 在命令行和配置文件中啟動(dòng)選項(xiàng)的區(qū)別 26
2.2 系統(tǒng)變量 27
2.2.1 系統(tǒng)變量簡(jiǎn)介 27
2.2.2 查看系統(tǒng)變量 27
2.2.3 設(shè)置系統(tǒng)變量 28
2.3 狀態(tài)變量 32
2.4 總結(jié) 32
第3章 字符集和比較規(guī)則 34
3.1 字符集和比較規(guī)則簡(jiǎn)介 34
3.1.1 字符集簡(jiǎn)介 34
3.1.2 比較規(guī)則簡(jiǎn)介 34
3.1.3 一些重要的字符集 35
3.2 MySQL中支持的字符集和比較規(guī)則 36
3.2.1 MySQL中的utf8和utf8mb4 36
3.2.2 字符集的查看 36
3.2.3 比較規(guī)則的查看 38
3.3 字符集和比較規(guī)則的應(yīng)用 39
3.3.1 各級(jí)別的字符集和比較規(guī)則 39
3.3.2 客戶端和服務(wù)器通信過(guò)程中使用的字符集 44
3.3.3 比較規(guī)則的應(yīng)用 52
3.4 總結(jié) 53
第4章 從一條記錄說(shuō)起——InnoDB記錄存儲(chǔ)結(jié)構(gòu) 55
4.1 準(zhǔn)備工作 55
4.2 InnoDB頁(yè)簡(jiǎn)介 55
4.3 InnoDB行格式 56
4.3.1 指定行格式的語(yǔ)法 56
4.3.2 COMPACT行格式 56
4.3.3 REDUNDANT行格式 64
4.3.4 溢出列 68
4.3.5 DYNAMIC行格式和COMPRESSED行格式 70
4.4 總結(jié) 71
第5章 盛放記錄的大盒子——InnoDB數(shù)據(jù)頁(yè)結(jié)構(gòu) 72
5.1 不同類型的頁(yè)簡(jiǎn)介 72
5.2 數(shù)據(jù)頁(yè)結(jié)構(gòu)快覽 72
5.3 記錄在頁(yè)中的存儲(chǔ) 73
5.4 Page Directory(頁(yè)目錄) 80
5.5 Page Header(頁(yè)面頭部) 85
5.6 File Header(文件頭部) 86
5.7 File Trailer(文件尾部) 88
5.8 總結(jié) 88
第6章 快速查詢的秘籍——B+樹(shù)索引 90
6.1 沒(méi)有索引時(shí)進(jìn)行查找 90
6.1.1 在一個(gè)頁(yè)中查找 90
6.1.2 在很多頁(yè)中查找 91
6.2 索引 91
6.2.1 一個(gè)簡(jiǎn)單的索引方案 92
6.2.2 InnoDB中的索引方案 94
6.2.3 InnoDB中B+樹(shù)索引的注意事項(xiàng) 102
6.2.4 MyISAM中的索引方案簡(jiǎn)介 104
6.2.5 MySQL中創(chuàng)建和刪除索引的語(yǔ)句 105
6.3 總結(jié) 106
第7章 B+樹(shù)索引的使用 107
7.1 B+樹(shù)索引示意圖的簡(jiǎn)化 107
7.2 索引的代價(jià) 109
7.3 應(yīng)用B+樹(shù)索引 110
7.3.1 掃描區(qū)間和邊界條件 110
7.3.2 索引用于排序 122
7.3.3 索引用于分組 125
7.4 回表的代價(jià) 126
7.5 更好地創(chuàng)建和使用索引 127
7.5.1 只為用于搜索、排序或分組的列創(chuàng)建索引 127
7.5.2 考慮索引列中不重復(fù)值的個(gè)數(shù) 127
7.5.3 索引列的類型盡量小 127
7.5.4 為列前綴建立索引 128
7.5.5 覆蓋索引 129
7.5.6 讓索引列以列名的形式在搜索條件中單獨(dú)出現(xiàn) 129
7.5.7 新插入記錄時(shí)主鍵大小對(duì)效率的影響 129
7.5.8 冗余和重復(fù)索引 130
7.6 總結(jié) 131
第8章 數(shù)據(jù)的家——MySQL的數(shù)據(jù)目錄 132
8.1 數(shù)據(jù)庫(kù)和文件系統(tǒng)的關(guān)系 132
8.2 MySQL數(shù)據(jù)目錄 132
8.2.1 數(shù)據(jù)目錄和安裝目錄的區(qū)別 132
8.2.2 如何確定MySQL中的數(shù)據(jù)目錄 132
8.3 數(shù)據(jù)目錄的結(jié)構(gòu) 133
8.3.1 數(shù)據(jù)庫(kù)在文件系統(tǒng)中的表示 133
8.3.2 表在文件系統(tǒng)中的表示 134
8.3.3 其他的文件 137
8.4 文件系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的影響 137
8.5 MySQL系統(tǒng)數(shù)據(jù)庫(kù)簡(jiǎn)介 138
8.6 總結(jié) 138
第9章 存放頁(yè)面的大池子——InnoDB的表空間 140
9.1 回憶一些舊知識(shí) 140
9.1.1 頁(yè)面類型 140
9.1.2 頁(yè)面通用部分 141
9.2 獨(dú)立表空間結(jié)構(gòu) 142
9.2.1 區(qū)的概念 142
9.2.2 段的概念 144
9.2.3 區(qū)的分類 145
9.2.4 段的結(jié)構(gòu) 149
9.2.5 各類型頁(yè)面詳細(xì)情況 150
9.2.6 Segment Header結(jié)構(gòu)的運(yùn)用 156
9.2.7 真實(shí)表空間對(duì)應(yīng)的文件大小 157
9.3 系統(tǒng)表空間 158
9.4 總結(jié) 164
第 10章 條條大路通羅馬——單表訪問(wèn)方法 166
10.1 訪問(wèn)方法的概念 167
10.2 const 167
10.3 ref 168
10.4 ref_or_null 170
10.5 range 171
10.6 index 171
10.7 all 172
10.8 注意事項(xiàng) 172
10.8.1 重溫二級(jí)索引+回表 172
10.8.2 索引合并 173
10.9 總結(jié) 177
第 11章 兩個(gè)表的親密接觸——連接的原理 178
11.1 連接簡(jiǎn)介 178
11.1.1 連接的本質(zhì) 178
11.1.2 連接過(guò)程簡(jiǎn)介 180
11.1.3 內(nèi)連接和外連接 181
11.2 連接的原理 185
11.2.1 嵌套循環(huán)連接 186
11.2.2 使用索引加快連接速度 187
11.2.3 基于塊的嵌套循環(huán)連接 188
11.3 總結(jié) 189
第 12章 誰(shuí)最便宜就選誰(shuí)——基于成本的優(yōu)化 190
12.1 什么是成本 190
12.2 單表查詢的成本 190
12.2.1 準(zhǔn)備工作 190
12.2.2 基于成本的優(yōu)化步驟 191
12.2.3 基于索引統(tǒng)計(jì)數(shù)據(jù)的成本計(jì)算 198
12.3 連接查詢的成本 201
12.3.1 準(zhǔn)備工作 201
12.3.2 條件過(guò)濾(Condition Filtering) 201
12.3.3 兩表連接的成本分析 203
12.3.4 多表連接的成本分析 205
12.4 調(diào)節(jié)成本常數(shù) 206
12.4.1 mysql.server_cost表 206
12.4.2 mysql.engine_cost表 208
12.5 總結(jié) 209
第 13章 兵馬未動(dòng),糧草先行——InnoDB統(tǒng)計(jì)數(shù)據(jù)是如何收集的 210
13.1 統(tǒng)計(jì)數(shù)據(jù)的存儲(chǔ)方式 210
13.2 基于磁盤(pán)的永久性統(tǒng)計(jì)數(shù)據(jù) 211
13.2.1 innodb_table_stats 211
13.2.2 innodb_index_stats 214
13.2.3 定期更新統(tǒng)計(jì)數(shù)據(jù) 215
13.2.4 手動(dòng)更新innodb_table_stats和innodb_index_stats表 216
13.3 基于內(nèi)存的非永久性統(tǒng)計(jì)數(shù)據(jù) 217
13.4 innodb_stats_method的使用 217
13.5 總結(jié) 219
第 14章 基于規(guī)則的優(yōu)化(內(nèi)含子查詢優(yōu)化二三事) 220
14.1 條件化簡(jiǎn) 220
14.1.1 移除不必要的括號(hào) 220
14.1.2 常量傳遞 220
14.1.3 移除沒(méi)用的條件 221
14.1.4 表達(dá)式計(jì)算 221
14.1.5 HAVING子句和WHERE子句的合并 221
14.1.6 常量表檢測(cè) 221
14.2 外連接消除 222
14.3 子查詢優(yōu)化 224
14.3.1 子查詢語(yǔ)法 225
14.3.2 子查詢?cè)贛ySQL中是怎么執(zhí)行的 230
14.4 總結(jié) 244
第 15章 查詢優(yōu)化的百科全書(shū)——EXPLAIN詳解 245
15.1 執(zhí)行計(jì)劃輸出中各列詳解 246
15.1.1 table 246
15.1.2 id 247
15.1.3 select_type 249
15.1.4 partitions 252
15.1.5 type 252
15.1.6 possible_keys和key 255
15.1.7 key_len 256
15.1.8 ref 258
15.1.9 rows 258
15.1.10 filtered 259
15.1.11 Extra 260
15.2 JSON格式的執(zhí)行計(jì)劃 266
15.3 Extented EXPLAIN 268
15.4 總結(jié) 269
第 16章 神兵利器——optimizer trace的神奇功效 270
16.1 optimizer trace簡(jiǎn)介 270
16.2 通過(guò)optimizer trace分析查詢優(yōu)化器的具體工作過(guò)程 271
第 17章 調(diào)節(jié)磁盤(pán)和CPU的矛盾——InnoDB的Buffer Pool 278
17.1 緩存的重要性 278
17.2 InnoDB的Buffer Pool 278
17.2.1 啥是Buffer Pool 278
17.2.2 Buffer Pool內(nèi)部組成 278
17.2.3 free鏈表的管理 279
17.2.4 緩沖頁(yè)的哈希處理 280
17.2.5 flush鏈表的管理 281
17.2.6 LRU鏈表的管理 282
17.2.7 其他的一些鏈表 286
17.2.8 刷新臟頁(yè)到磁盤(pán) 287
17.2.9 多個(gè)Buffer Pool實(shí)例 287
17.2.10 innodb_buffer_pool_chunk_size 288
17.2.11 配置Buffer Pool時(shí)的注意事項(xiàng) 289
17.2.12 查看Buffer Pool的狀態(tài)信息 291
17.3 總結(jié) 293
第 18章 從貓爺借錢(qián)說(shuō)起——事務(wù)簡(jiǎn)介 294
18.1 事務(wù)的起源 294
18.1.1 原子性(Atomicity) 295
18.1.2 隔離性(Isolation) 295
18.1.3 一致性(Consistency) 296
18.1.4 持久性(Durability) 298
18.2 事務(wù)的概念 298
18.3 MySQL中事務(wù)的語(yǔ)法 300
18.3.1 開(kāi)啟事務(wù) 300
18.3.2 提交事務(wù) 301
18.3.3 手動(dòng)中止事務(wù) 302
18.3.4 支持事務(wù)的存儲(chǔ)引擎 302
18.3.5 自動(dòng)提交 303
18.3.6 隱式提交 304
18.3.7 保存點(diǎn) 305
18.4 總結(jié) 307
第 19章 說(shuō)過(guò)的話就一定要做到——redo日志 308
19.1 事先說(shuō)明 308
19.2 redo日志是啥 308
19.3 redo日志格式 309
19.3.1 簡(jiǎn)單的redo日志類型 309
19.3.2 復(fù)雜一些的redo日志類型 311
19.3.3 redo日志格式小結(jié) 314
19.4 Mini-Transaction 315
19.4.1 以組的形式寫(xiě)入redo日志 315
19.4.2 Mini-Transaction的概念 319
19.5 redo日志的寫(xiě)入過(guò)程 319
19.5.1 redo log block 319
19.5.2 redo日志緩沖區(qū) 320
19.5.3 redo日志寫(xiě)入log buffer 321
19.6 redo日志文件 323
19.6.1 redo日志刷盤(pán)時(shí)機(jī) 323
19.6.2 redo日志文件組 323
19.6.3 redo日志文件格式 324
19.7 log sequence number 327
19.7.1 flushed_to_disk_lsn 328
19.7.2 lsn值和redo日志文件組中的偏移量的對(duì)應(yīng)關(guān)系 330
19.7.3 flush鏈表中的lsn 330
19.8 checkpoint 332
19.9 用戶線程批量從flush鏈表中刷出臟頁(yè) 335
19.10 查看系統(tǒng)中的各種lsn值 335
19.11 innodb_flush_log_at_trx_commit的用法 336
19.12 崩潰恢復(fù) 336
19.12.1 確定恢復(fù)的起點(diǎn) 337
19.12.2 確定恢復(fù)的終點(diǎn) 337
19.12.3 怎么恢復(fù) 337
19.13 遺漏的問(wèn)題:LOG_BLOCK_HDR_NO是如何計(jì)算的 339
19.14 總結(jié) 340
第 20章 后悔了怎么辦——undo日志 342
20.1 事務(wù)回滾的需求 342
20.2 事務(wù)id 343
20.2.1 分配事務(wù)id的時(shí)機(jī) 343
20.2.2 事務(wù)id是怎么生成的 343
20.2.3 trx_id隱藏列 344
20.3 undo日志的格式 344
20.3.1 INSERT操作對(duì)應(yīng)的undo日志 345
20.3.2 DELETE操作對(duì)應(yīng)的undo日志 347
20.3.3 UPDATE操作對(duì)應(yīng)的undo日志 353
20.3.4 增刪改操作對(duì)二級(jí)索引的影響 357
20.4 通用鏈表結(jié)構(gòu) 357
20.5 FIL_PAGE_UNDO_LOG頁(yè)面 359
20.6 Undo頁(yè)面鏈表 361
20.6.1 單個(gè)事務(wù)中的Undo頁(yè)面鏈表 361
20.6.2 多個(gè)事務(wù)中的Undo頁(yè)面鏈表 362
20.7 undo日志具體寫(xiě)入過(guò)程 363
20.7.1 段的概念 363
20.7.2 Undo Log Segment Header 364
20.7.3 Undo Log Header 365
20.7.4 小結(jié) 367
20.8 重用Undo頁(yè)面 368
20.9 回滾段 369
20.9.1 回滾段的概念 369
20.9.2 從回滾段中申請(qǐng)Undo頁(yè)面鏈表 371
20.9.3 多個(gè)回滾段 372
20.9.4 回滾段的分類 374
20.9.5 roll_pointer的組成 374
20.9.6 為事務(wù)分配Undo頁(yè)面鏈表的詳細(xì)過(guò)程 375
20.10 回滾段相關(guān)配置 376
20.10.1 配置回滾段數(shù)量 376
20.10.2 配置undo表空間 376
20.11 undo日志在崩潰恢復(fù)時(shí)的作用 377
20.12 總結(jié) 377
第 21章 一條記錄的多副面孔——事務(wù)隔離級(jí)別和MVCC 379
21.1 事前準(zhǔn)備 379
21.2 事務(wù)隔離級(jí)別 379
21.2.1 事務(wù)并發(fā)執(zhí)行時(shí)遇到的一致性問(wèn)題 382
21.2.2 SQL標(biāo)準(zhǔn)中的4種隔離級(jí)別 385
21.2.3 MySQL中支持的4種隔離級(jí)別 386
21.3 MVCC原理 388
21.3.1 版本鏈 388
21.3.2 ReadView 390
21.3.3 二級(jí)索引與MVCC 397
21.3.4 MVCC小結(jié) 397
21.4 關(guān)于purge 398
21.5 總結(jié) 399
第 22章 工作面試?yán)洗箅y——鎖 401
22.1 解決并發(fā)事務(wù)帶來(lái)問(wèn)題的兩種基本方式 401
22.1.1 寫(xiě)-寫(xiě)情況 401
22.1.2 讀-寫(xiě)或?qū)?讀情況 403
22.1.3 一致性讀 404
22.1.4 鎖定讀 404
22.1.5 寫(xiě)操作 405
22.2 多粒度鎖 406
22.3 MySQL中的行鎖和表鎖 408
22.3.1 其他存儲(chǔ)引擎中的鎖 408
22.3.2 InnoDB存儲(chǔ)引擎中的鎖 409
22.3.3 InnoDB鎖的內(nèi)存結(jié)構(gòu) 417
22.4 語(yǔ)句加鎖分析 423
22.4.1 普通的SELECT語(yǔ)句 423
22.4.2 鎖定讀的語(yǔ)句 424
22.4.3 半一致性讀的語(yǔ)句 441
22.4.4 INSERT語(yǔ)句 442
22.5 查看事務(wù)加鎖情況 444
22.5.1 使用information_schema數(shù)據(jù)庫(kù)中的表獲取鎖信息 444
22.5.2 使用SHOW ENINGE INNODB STATUS獲取鎖信息 446
22.6 死鎖 450
22.7 總結(jié) 454
參考資料 455

本目錄推薦

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