《深入理解MariaDB與MySQL》是2015年人民郵電出版社出版的圖書,作者是[韓] 李成旭。
基本介紹
- 書名:深入理解MariaDB與MySQL
- 作者:韓] 李成旭
- 譯者:武傳海
- ISBN:9787115409089
- 頁數:456
- 定價:89.00
- 出版社:人民郵電出版社
基本信息,圖書簡介,目錄,
基本信息
圖書簡介
本書講解了MariaDB的誕生背景及設計目的,並通過與MySQL的比較使讀者輕鬆理解MariaDB。本書內容涉及MariaDB 5.1~10.0的各個方面,講解重點在於MariaDB 10.0的各種實用功能。此外,MariaDB與MySQL有著緊密的聯繫,書中對MariaDB 10.0與MySQL 5.6的新功能進行了比較,讀者可以同時學習MariaDB與MySQL的內容。
目錄
第1章 MariaDB 1
1.1 MariaDB.2
1.2 MariaDB 與MySQL.3
1.2.1 MariaDB、MySQL 和PerconaServer3
1.2.2 相同點6
1.2.3 不同點7
1.2.4 各版本間的兼容性 10
1.2.5 性能比較. 11
1.2.6 MariaDB 是否會取代MySQL 14
1.2.7 MariaDB 與MySQL 的選擇. 14
第2章 安裝 17
2.1 下載 18
2.2 安裝 20
2.2.1 在Windows 作業系統下安裝MariaDB 21
2.2.2 在Linux 作業系統下安裝MariaDB 27
2.3 更新 28
2.3.1 從MySQL 升級到MariaDB 時的注意事項 28
2.3.2 不受版本限制的安全升級法 29
2.3.3 從MySQL 5.0 或之前版本升級為MariaDB 5.5 30
2.3.4 從MySQL 5.1 升級為MariaDB 5.5 31
2.3.5 從MySQL 5.5 升級為MariaDB 5.5 32
第3章 MariaDB啟動及執行查詢 33
3.1 啟動與終止伺服器 34
3.1.1 在Linux 中啟動與終止MariaDB 伺服器 34
3.1.2 在Windows 系統中啟動與終止MariaDB 伺服器 36
?3.2 登錄伺服器 37
3.2.1 登錄伺服器與版本確認. 37
3.2.2 mysql 客戶端程式支持的選項 39
3.3 創建資料庫與用戶 41
3.3.1 MariaDB 用戶賬戶識別與許可權 41
3.3.2 MariaDB 默認用戶. 47
3.3.3 MariaDB 的默認資料庫. 48
3.3.4 新建資料庫. 50
3.3.5 創建用戶. 50
3.4 創建與修改數據表 51
3.4.1 創建數據表. 52
3.4.2 修改數據表(線上與離線). 53
3.4.3 刪除數據表. 66
3.5 數據操作 . 67
3.5.1 INSERT. 67
3.5.2 SELECT 68
3.5.3 UPDATE. 70
3.5.4 REPLACE 71
3.5.5 DELETE 71
第4章 執行計畫分析 73
4.1 概要 . 74
4.1.1 查詢執行過程 74
4.1.2 最佳化器種類. 75
4.1.3 統計信息. 76
4.1.4 直方圖統計信息 82
4.1.5 連線最佳化器選項 87
4.2 準備示例數據. 92
4.2.1 載入示例數據 92
4.2.2 收集統計信息 94
4.3 執行計畫分析. 96
4.3.1 id 列 97
4.3.2 select_type 列. 98
4.3.3 table 列 106
4.3.4 type 列. 108
4.3.5 possible_keys 列 117
4.3.6 key 列 117
4.3.7 key_len 列 117
4.3.8 ref 列 119
4.3.9 rows 列 120
4.3.10 Extra 列 121
4.3.11 EXPLAIN EXTENDED(Filtered 列) 149
4.3.12 EXPLAIN EXTENDED(附加最佳化器信息) 150
4.3.13 EXPLAIN PARTITIONS(Partitions 列) 151
4.4 最佳化器提示 . 152
4.4.1 提示的使用方法 152
4.4.2 STRAIGHT_JOIN 153
4.4.3 USE INDEX/FORCE INDEX/IGNORE INDEX 156
4.4.4 SQL_CACHE/SQL_NO_CACHE 157
4.4.5 SQL_CALC_FOUND_ROWS 158
4.4.6 其他提示. 160
4.5 分析執行計畫時的注意事項 160
4.5.1 Select_type 列中需要注意的項目 160
4.5.2 Type 列中需要注意的項目. 161
4.5.3 Key 列中需要注意的項目. 161
4.5.4 Rows 列中需要注意的項目 161
4.5.5 Extra 列中需要注意的項目 161
第5章 最佳化 163
5.1 全表掃描 . 164
5.2 ORDER BY 處理(Using filesort) 165
5.2.1 排序緩衝. 165
5.2.2 排序算法. 167
5.2.3 排序處理方式 169
5.2.4 ORDER BYLIMIT n 最佳化 177
5.2.5 與排序相關的狀態變數. 178
5.3 GROUP BY 處理 179
5.3.1 使用索引掃描處理GROUP BY(緊湊索引掃描) 179
5.3.2 使用鬆散索引掃描處理GROUP BY 179
5.3.3 使用臨時表處理GROUP BY 181
5.4 DISTINCT 處理 182
5.4.1 SELECT DISTINCT 182
5.4.2 DISTINCT 用於集合函式內部. 183
5.5 臨時表(Using temporary) 184
5.5.1 需要使用臨時表的查詢. 185
5.5.2 在磁碟上創建臨時表(使用Aria 存儲引擎) 185
5.5.3 與臨時表有關的狀態變數. 186
5.5.4 帶索引的內部臨時表. 187
5.5.5 內部臨時表的注意事項. 187
5.6 索引條件下推 188
5.7 多範圍讀 . 191
5.7.1 基於RowId 排序(Rowid-orderd scan) 192
5.7.2 基於Key 排序(Key-ordered scan) 194
5.7.3 基於Key 與RowId 排序(Key-ordered、Rowid-ordered scan) 195
5.7.4 “多範圍讀”最佳化與排序. 197
5.7.5 “多範圍讀”最佳化的注意事項 198
5.8 索引合併 . 199
5.8.1 Using union 201
5.8.2 Using sort_union 202
5.8.3 Using intersect 204
5.8.4 Using sort_intersect 205
5.9 數據表連線 . 205
5.9.1 連線類型. 206
5.9.2 連線算法. 212
5.9.3 連線的注意事項 222
5.10 子查詢 . 224
5.10.1 半連線子查詢最佳化. 224
5.10.2 非半連線的子查詢最佳化. 236
5.10.3 子查詢快取 238
第6章 存儲引擎 241
6.1 Aria 存儲引擎 . 242
6.1.1 事務 242
6.1.2 頁面快取. 243
6.1.3 系統變數設定 243
6.2 XtraDB 存儲引擎 . 244
InnoDB 與XtraDB 存儲引擎替換 245
6.3 InnoDB 存儲引擎 247
6.3.1 MySQL 5.6 InnoDB. 247
6.3.2 “髒頁”刷新. 262
6.3.3 緩衝池性能改善 279
6.3.4 原子寫(針對FusionIO SSD 的Atomic write) 283
6.3.5 擴展的InnoDB 引擎狀態輸出 284
6.3.6 XtraDB 重做日誌存檔. 288
6.3.7 跟蹤修改頁面 . 289
6.4 全文檢索引擎 290
6.4.1 添加全文檢索索引 290
6.4.2 全文檢索索引表空間. 292
6.4.3 與全文檢索索引相關的INFORMATION_SCHEMA 信息 294
6.4.4 使用全文檢索索引 295
6.4.5 注意事項. 295
6.5 Memcached 外掛程式 298
6.5.1 架構 298
6.5.2 安裝與測試. 299
6.5.3 快取策略. 303
6.5.4 註冊用戶數據表 304
6.5.5 相關係統變數 305
6.6 Cassandra 存儲引擎 306
6.6.1 Cassandra. 307
6.6.2 Cassandra 存儲引擎. 309
6.7 CONNECT 存儲引擎 311
6.7.1 安裝CONNECT 存儲引擎. 311
6.7.2 連線Oracle RDBMS 數據表. 312
6.7.3 連線my.cnf 設定檔案. 313
6.7.4 連線作業系統目錄 314
6.8 Sequence 存儲引擎 . 315
6.8.1 Sequence 存儲引擎的基本用法 315
6.8.2 查找遺漏的編號 317
6.8.3 創建順序組合的號碼對. 318
6.8.4 查找倍數或公倍數 318
6.8.5 順序生成字母表 319
6.8.6 順序生成日期 320
6.8.7 數據複製加工 320
6.9 Mroonga 全文檢索存儲引擎 321
6.9.1 索引算法. 322
6.9.2 安裝Mroonga 全文檢索引擎. 324
6.9.3 使用Mroonga 全文檢索引擎. 325
第7章 其他功能 329
7.1 性能提升 330
7.1.1 執行緒池. 330
7.2 管理與診斷 335
7.2.1 SHOW EXPLAIN FORTHREAD-ID 335
7.2.2 向慢查詢日誌輸出執行計畫 337
7.2.3 輸出結構化的執行計畫. 338
7.2.4 執行緒的記憶體使用量 340
7.2.5 SHUTDOWN 命令. 341
7.2.6 強制終止用戶或查詢執行. 341
7.2.7 GET DIAGNOSTICS. 343
7.3 開發效率 . 344
7.3.1 LIMIT ROWS EXAMINED. 344
7.3.2 DELETERETURNING. 346
7.3.3 以微秒為單位保存時間. 347
7.3.4 設定DATETIME 類型的默認值 349
7.3.5 擴展正則表達式功能. 349
7.3.6 虛擬列. 352
7.3.7 動態列. 354
7.4 分區 . 357
7.4.1 顯式指定分區 358
7.4.2 交換分區表空間 362
7.5 備份 . 364
7.5.1 二進制日誌遠程備份. 365
7.5.2 XtraBackup 介紹 368
7.5.3 XtraBackup 的功能 381
7.5.4 XtraBackup 的高級用法. 386
第8章 複製 397
8.1 全局事務ID . 398
8.1.1 全局事務ID 的定義 398
8.1.2 全局事務ID 的必要性. 400
8.1.3 MariaDB 10.0 全局事務ID 403
8.1.4 MySQL 5.6 全局事務ID 413
8.2 多源複製 . 421
8.2.1 多源複製相關命令 422
8.2.2 構建多源複製 423
8.2.3 多源複製與全局事務. 426
8.3 多執行緒複製 . 428
8.3.1 MySQL 5.6 的多執行緒複製 428
8.3.2 MariaDB 10.0 的多執行緒複製. 431
8.4 Crash safe slave 433
8.4.1 MariaDB 10.0 的崩潰安全複製 434
8.4.2 MySQL 5.6 的崩潰安全複製. 435
8.5 改善基於ROW 的複製功能 435
8.5.1 ROW 格式的容量最佳化 435
8.5.2 ROW 格式二進制日誌的信息性日誌事件 436
8.6 延遲複製 . 439
8.7 MariaDB 與MySQL 伺服器間的複製 440
8.8 其他功能改善 441
8.8.1 二進制日誌校驗和 441
8.8.2 二進制日誌API. 442
8.8.3 提交二進制日誌組 443