圖書信息
作者:Ronald Bradford 著 李雪鋒 譯 圖書詳細信息:ISBN:9787302304296
定價:29元
印次:1-1
裝幀:平裝
印刷日期:2012-12-7
圖書簡介
《Effective MySQL之SQL語句最最佳化》是由MySQL專家Ronald Bradford撰著,書中提供了很多可以用於改進資料庫和應用程式性能的最佳實踐技巧,並對這些技巧做了詳細的解釋。本書希望能夠通過一步步詳細介紹SQL最佳化的方法,幫助讀者分析和調優有問題的SQL語句。主要內容
● 找出收集和診斷問題必備的分析命令
● 創建MySQL索引來改進查詢性能
● 掌握MySQL的查詢執行計畫
● 找出影響查詢執行和性能的關鍵配置變數
● 用SQL語句最佳化的生命周期來識別、確認、分析然後最佳化SQL語句,並檢查最佳化的結果
● 學習使用不為常人所知的一些性能技巧來改進索引效率並簡化SQL語句
圖書前言
作為一名日常DBA,最常重複的任務就是在生產環境中檢查和最佳化運行的SQL語句。在MySQL軟體安裝、配置以及正常運行之後,監控資料庫的性能問題就成為一項經常重複的工作。了解如何正確地截取有問題的SQL語句以及檢查並做適當的調整,這已經成為一個專業DBA的必備技能。儘管MySQL是一個關係型資料庫管理系統(RDBMS),有Oracle或者SQL Server背景的有經驗的資料庫管理員還是需要學習如何在MySQL術語中正確地套用SQL查詢分析理論,而這需要閱讀並理解查詢執行計畫(QEP),了解MySQL最佳化器功能的限制和不足,還要理解不同的MySQL存儲引擎是如何改變索引的高效使用方式的。SQL語句的最佳化不僅僅是資料庫管理員的責任。本書將幫助讀者理解MySQL索引和存儲引擎是如何運行的,這對一個由數據架構師設計的最佳化過的資料庫來說是更重要的實現考慮因素。軟體開發人員將能夠截取和分析所有SQL語句,以此來確保性能瓶頸能夠在開發早期被發現然後由合適的人去處理。
最佳化SQL語句是改進性能和擴展性的一個關鍵部分。
圖書目錄
第1章 DBA五分鐘速成 / 11.1 識別性能問題 / 2
1.1.1 尋找運行緩慢的SQL語句 / 2
1.1.2 確認低效查詢 / 3
1.2 最佳化查詢 / 6
1.2.1 不應該做的事情 / 6
1.2.2 確認最佳化 / 7
1.2.3 正確的方式 / 7
1.2.4 備選的解決方案 / 9
1.2 本章小結 / 9
第2章 基本的分析命令 / 11
2.1 EXPLAIN命令 / 12
2.1.1 EXPLAIN PARTITIONS命令 / 14
2.1.2 EXPLAIN EXTENDED命令 / 15
2.2 SHOW CREATE TABLE命令 / 16
2.3 SHOW INDEXES命令 / 18
2.4 SHOW TABLE STATUS命令 / 19
2.5 SHOW STATUS命令 / 22
2.6 SHOW VARIABLES命令 / 25
2.7 INFORMATION_SCHEMA / 26
2.8 本章小結 / 27
第3章 深入理解MySQL的索引 / 29
3.1 示例表 / 30
3.2 MySQL索引用法 / 31
3.2.1 數據完整性 / 32
3.2.2 最佳化數據訪問 / 33
3.2.3 表連線 / 35
3.2.4 結果排序 / 35
3.2.5 聚合操作 / 35
3.3 關於存儲引擎 / 36
3.4 索引專業術語 / 37
3.5 MySQL索引類型 / 38
3.5.1 索引數據結構理論 / 39
3.5.2 MySQL實現 / 43
3.6 MySQL分區 / 54
3.7 本章小結 / 55
第4章 創建MySQL索引 / 57
4.1 本章範例中用到的表 / 58
4.2 已有的索引 / 59
4.3 單列索引 / 61
4.3.1 創建單列索引的語法 / 61
4.3.2 利用索引限制查詢讀取的行數 / 62
4.3.3 使用索引連線表 / 64
4.3.4 理解索引的基數 / 66
4.3.5 使用索引進行模式匹配 / 69
4.3.6 選擇唯一的行 / 71
4.3.7 結果排序 / 73
4.4 多列索引 / 75
4.4.1 確定使用何種索引 / 75
4.4.2 多列索引的語法 / 79
4.4.3 創建更好的索引 / 79
4.4.4 多個列上的索引 / 82
4.4.5 合併WHERE和ORDER BY語句 / 83
4.4.6 MySQL最佳化器的特性 / 85
4.4.7 查詢提示 / 88
4.4.8 複雜查詢 / 92
4.5 添加索引造成的影響 / 93
4.5.1 DML影響 / 93
4.5.2 DDL影響 / 96
4.5.3 磁碟空間影響 / 97
4.6 MySQL的限制和不足 / 100
4.6.1 基於開銷的最佳化器 / 100
4.6.2 指定QEP / 100
4.6.3 索引的統計信息 / 100
4.6.4 基於函式的索引 / 101
4.6.5 一個表上的多個索引 / 101
4.7 本章小結 / 101
第5章 創建更好的MySQL索引 / 103
5.1 更好的索引 / 104
5.1.1 覆蓋索引 / 104
5.1.2 存儲引擎的含義 / 109
5.1.3 局部索引 / 110
5.2 本章小結 / 114
第6章 MySQL配置選項 / 117
6.1 記憶體相關的系統變數 / 118
6.1.1 key_buffer_size / 120
6.1.2 命名碼緩衝區 / 121
6.1.3 innodb_buffer_pool_size / 122
6.1.4 innodb_additional_mem_pool_size / 124
6.1.5 query_cache_size / 125
6.1.6 max_heap_table_size / 126
6.1.7 tmp_table_size / 127
6.1.8 join_buffer_size / 129
6.1.9 sort_buffer_size / 129
6.1.10 read_buffer_size / 130
6.1.11 read_rnd_buffer_size / 130
6.2 有關基礎工具的變數 / 130
6.2.1 slow_query_log / 131
6.2.2 slow_query_log_file / 131
6.2.3 general_log / 131
6.2.4 general_log_file / 131
6.2.5 long_query_time / 132
6.2.6 log_output / 132
6.2.7 profiling / 132
6.3 其他最佳化變數 / 133
6.3.1 optimizer_switch / 133
6.3.2 default_storage_engine / 133
6.3.3 max_allowed_packet / 134
6.3.4 sql_mode / 134
6.3.5 innodb_strict_mode / 134
6.4 其他變數 / 134
6.5 本章小結 / 135
第7章 SQL的生命周期 / 137
7.1 截取SQL語句 / 138
7.1.1 全面查詢日誌 / 139
7.1.2 慢查詢日誌 / 140
7.1.3 二進制日誌 / 142
7.1.4 進程列表 / 143
7.1.5 引擎狀態 / 144
7.1.6 MySQL連線器 / 145
7.1.7 應用程式代碼 / 146
7.1.8 INFORMATION_SCHEMA / 148
7.1.9 PERFORMANCE_SCHEMA / 148
7.1.10 SQL語句統計外掛程式 / 148
7.1.11 MySQL Proxy / 149
7.1.12 TCP/IP / 149
7.2 識別有問題的語句 / 149
7.2.1 慢查詢日誌分析 / 152
7.2.2 TCP/IP分析 / 154
7.3 確認語句執行 / 156
7.3.1 環境 / 156
7.3.2 時間統計 / 157
7.4 語句分析 / 158
7.5 語句最佳化 / 159
7.6 結果驗證 / 159
7.7 本章小結 / 160
第8章 性能最佳化之隱藏秘籍 / 161
8.1 索引管理最佳化 / 162
8.1.1 整合DDL語句 / 162
8.1.2 去除重複索引 / 163
8.1.3 刪除不用的索引 / 164
8.1.4 監控無效的索引 / 165
8.2 索引列的改進 / 165
8.2.1 數據類型 / 165
8.2.2 列的類型 / 168
8.3 其他SQL最佳化 / 170
8.3.1 減少SQL語句 / 171
8.3.2 簡化SQL語句 / 178
8.3.3 使用MySQL的複製功能 / 180
8.4 本章小結 / 181
第9章 MySQL EXPLAIN命令詳解 / 183
9.1 語法 / 184
9.2 各列詳解 / 185
9.2.1 key / 187
9.2.2 rows / 187
9.2.3 possible_keys / 190
9.2.4 key_len / 190
9.2.5 table / 192
9.2.6 select_type / 193
9.2.7 partitions / 194
9.2.8 Extra / 195
9.2.9 id / 197
9.2.10 ref / 197
9.2.11 filtered / 197
9.2.12 type / 198
9.3 解釋EXPLAIN輸出結果 / 198
9.4 本章小結 / 201