Effective MySQL之SQL語句最佳化

來源:互聯網
上載者:User

標籤:effective mysql

推薦本SQL最佳化的書《Effective MySQL之SQL語句最佳化》。
主要講解:如何去分析SQL的效能、索引的原理、如何建立合適的索引、如何去分析線上系統的效能瓶頸。

另外還介紹了幾個協助工具輔助:
mysqldumpslow 來分析慢查詢日誌;
Google開源的mysql-slow-query-log-parser 分析慢查詢日誌;
應用程式中使用MySQL Proxy來收集SQL語句、QEP、查詢執行時間;
開源Maatkit檢查資料庫中的重複索引;
Google的MySQL補丁,引入SHOW INDEX_STATISTICS 用來分析索引;
MySQL補丁microsecond-mysql-client可以對SQL進行微妙層級的監控;
開源sqlstats外掛程式,統計SQL語句;

電子版:http://download.csdn.net/detail/bbirdsky/8207119

書不厚也就200頁,以下是此書的目錄:

第1章 DBA五分鐘速成     1 
1.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

Effective MySQL之SQL語句最佳化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.