第1章 MariaDB 1
1.1 MariaDB 2
1.2 MariaDB與MySQL 3
1.2.1 MariaDB、MySQL和PerconaServer 3
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 啓動與終止服務器MariaDB MySQL 34
3.1.1 在Linux中啓動與終止MariaDB服務器 34
3.1.2 在Windows係統中啓動與終止MariaDB服務器 36
3.2 登錄服務器MariaDB MySQL 37
3.2.1 登錄服務器與版本確認 37
3.2.2 mysql客戶端程序支持的選項 39
3.3 創建數據庫與用戶MariaDB MySQL 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 創建與修改數據錶MariaDB MySQL 51
3.4.1 創建數據錶 52
3.4.2 修改數據錶(在綫與離綫) 53
3.4.3 刪除數據錶 66
3.5 數據操作MariaDB MySQL 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 概要MariaDB MySQL 74
4.1.1 查詢執行過程 74
4.1.2 優化器種類 75
4.1.3 統計信息 76
4.1.4 直方圖統計信息MariaDB 82
4.1.5 連接優化器選項 87
4.2 準備示例數據 92
4.2.1 加載示例數據 92
4.2.2 收集統計信息 94
4.3 執行計劃分析MariaDB MySQL 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 優化器提示MariaDB MySQL 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 全錶掃描MariaDB MySQL 164
5.2 ORDER BY處理(Using filesort)MariaDB MySQL 165
5.2.1 排序緩衝 165
5.2.2 排序算法 167
5.2.3 排序處理方式 169
5.2.4 ORDER BY LIMIT n 優化MySQL 177
5.2.5 與排序相關的狀態變量 178
5.3 GROUP BY 處理MariaDB MySQL 179
5.3.1 使用索引掃描處理GROUP BY(緊湊索引掃描) 179
5.3.2 使用鬆散索引掃描處理GROUP BY 179
5.3.3 使用臨時錶處理GROUP BY 181
5.4 DISTINCT處理MariaDB MySQL 182
5.4.1 SELECT DISTINCT… 182
5.4.2 DISTINCT 用於集閤函數內部 183
5.5 臨時錶(Using temporary)MariaDB MySQL 184
5.5.1 需要使用臨時錶的查詢 185
5.5.2 在磁盤上創建臨時錶(使用Aria 存儲引擎)MariaDB 185
5.5.3 與臨時錶有關的狀態變量 186
5.5.4 帶索引的內部臨時錶 187
5.5.5 內部臨時錶的注意事項 187
5.6 索引條件下推MariaDB MySQL 188
5.7 多範圍讀MariaDB MySQL 191
5.7.1 基於RowId排序(Rowid-orderd scan) 192
5.7.2 基於Key排序(Key-ordered scan)MariaDB 194
5.7.3 基於Key與RowId 排序(Key-ordered、Rowid-ordered scan)MariaDB 195
5.7.4 “多範圍讀”優化與排序 197
5.7.5 “多範圍讀”優化的注意事項 198
5.8 索引閤並MariaDB MySQL 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 MariaDB 205
5.9 數據錶連接MariaDB MySQL 205
5.9.1 連接類型 206
5.9.2 連接算法 212
5.9.3 連接的注意事項 222
5.10 子查詢MariaDB MySQL 224
5.10.1 半連接子查詢優化 224
5.10.2 非半連接的子查詢優化 236
5.10.3 子查詢緩存 238
第6章 存儲引擎 241
6.1 Aria存儲引擎MariaDB 242
6.1.1 事務 242
6.1.2 頁麵緩存 243
6.1.3 係統變量設置 243
6.2 XtraDB存儲引擎MariaDB 244
6.3 InnoDB存儲引擎MariaDB MySQL 247
6.3.1 MySQL 5.6 InnoDB 247
6.3.2 “髒頁”刷新 262
6.3.3 緩衝池性能改善MariaDB 279
6.3.4 原子寫(針對FusionIO SSD的Atomic write)MariaDB 283
6.3.5 擴展的InnoDB引擎狀態輸齣MariaDB 284
6.3.6 XtraDB重做日誌存檔 288
6.3.7 跟蹤修改頁麵MariaDB 289
6.4 全文檢索引擎MariaDB MySQL 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插件MySQL 298
6.5.1 架構 298
6.5.2 安裝與測試 299
6.5.3 緩存策略 303
6.5.4 注冊用戶數據錶 304
6.5.5 相關係統變量 305
6.6 Cassandra存儲引擎MariaDB 306
6.6.1 Cassandra 307
6.6.2 Cassandra存儲引擎 309
6.7 CONNECT存儲引擎MariaDB 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存儲引擎MariaDB 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全文檢索存儲引擎MariaDB MySQL 321
6.9.1 索引算法 322
6.9.2 安裝Mroonga全文檢索引擎 324
6.9.3 使用Mroonga全文檢索引擎 325
第7章 其他功能 329
7.1 性能提升MariaDB MySQL Enterprise 330
7.2 管理與診斷MariaDB 335
7.2.1 SHOW EXPLAIN FOR<THREAD-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 開發效率MariaDB 344
7.3.1 LIMIT ROWS EXAMINED 344
7.3.2 DELETE…RETURNING… 346
7.3.3 以微秒為單位保存時間 347
7.3.4 設置DATETIME類型的默認值 349
7.3.5 擴展正則錶達式功能 349
7.3.6 虛擬列 352
7.3.7 動態列 354
7.4 分區MariaDB MySQL 358
7.4.1 顯式指定分區 358
7.4.2 交換分區錶空間 362
7.5 備份MariaDB MySQL 364
7.5.1 二進製日誌遠程備份 365
7.5.2 XtraBackup介紹 368
7.5.3 XtraBackup的功能 381
7.5.4 XtraBackup的高級用法 386
第8章 復製 397
8.1 全局事務IDMariaDB MySQL 398
8.1.1 全局事務ID的定義 398
8.1.2 全局事務ID的必要性 400
8.1.3 MariaDB 10.0全局事務ID MariaDB 403
8.1.4 MySQL 5.6全局事務ID MySQL 413
8.2 多源復製MariaDB 421
8.2.1 多源復製相關命令 422
8.2.2 構建多源復製 423
8.2.3 多源復製與全局事務 426
8.3 多綫程復製MariaDB MySQL 428
8.3.1 MySQL 5.6的多綫程復製 428
8.3.2 MariaDB 10.0的多綫程復製 431
8.4 Crash safe slave MariaDB MySQL 433
8.4.1 MariaDB 10.0的崩潰安全復製 434
8.4.2 MySQL 5.6的崩潰安全復製 435
8.5 改善基於ROW的復製功能MariaDB MySQL 435
8.5.1 ROW格式的容量優化MySQL 435
8.5.2 ROW格式二進製日誌的信息性日誌事件 436
8.6 延遲復製MySQL 439
8.7 MariaDB與MySQL服務器間的復製 440
8.8 其他功能改善MariaDB MySQL 441
8.8.1 二進製日誌校驗和 441
8.8.2 二進製日誌API 442
8.8.3 提交二進製日誌組 443
· · · · · · (
收起)