收獲 不止SQL優化 抓住SQL的本質pdf

2019年9月24日12:15:30 評論 17
摘要

方法意識巧妙融入,腦圖表格清晰展現;
海量案例完美結合,線上線下拓展延伸。

收獲 不止SQL優化 抓住SQL的本質 內容簡介

有人就有江湖,有江湖就有IT系統,有IT系統就有數據庫,有數據庫就有SQL,SQL應用可一字概括:“廣”。加之其簡單易學,SQL實現也可一字概括:“樂”。

然而,SQL雖然實現簡單可樂,卻極易引發性能問題,那時廣大SQL使用人員可要“愁”就一個字,心碎無數次了。

緣何有性能問題?原因也一字概括:“量”。當系統數據量、并發訪問量上去后,不良SQL就會拖跨整個系統,我們甚至找不出哪些SQL影響了系統。即便找到也不知如何動手優化。此時的心情也可以一字概括:“懵”。

現在《收獲,不止SQL優化——抓住SQL的本質》開始帶你拋除煩惱,走進優化的可樂世界!

收獲 不止SQL優化 抓住SQL的本質 目錄

匠心獨運 獨樹一幟——與梁敬彬先生序

名家力薦

作者簡介

致謝

前言與意識:從優化方法到全書脈絡

第1章 全局在胸——用工具對SQL整體優化

1.1 都有哪些性能工具

1.2 整體性能工具的要點

1.3 案例的分享與交流

1.4 本章總結延伸與習題

第2章 風馳電掣——有效縮短SQL優化過程

2.1 SQL調優時間都去哪兒了

2.2 如何縮短SQL調優時間

2.3 從案例看快速SQL調優

2.4 本章總結延伸與習題

第3章 循規蹈矩——如何讀懂SQL執行計劃

3.1 執行計劃分析概述

3.2 讀懂執行計劃的關鍵

3.3 從案例辨別低效SQL

3.4 本章習題、總結與延伸

第4章 運籌帷幄——左右SQL執行計劃妙招

4.1 控制執行計劃的方法綜述

4.2 從案例探索其方法及意義

4.3 本章習題、總結與延伸

第5章 且慢,感受體系結構讓SQL飛

5.1 體系結構知識

5.2 體系與SQL優化

5.3 擴展優化案例

5.4 本章習題、總結與延伸

第6章 且慢,體驗邏輯結構讓SQL飛

6.1 邏輯結構

6.2 體系細節與SQL優化

6.3 相關優化案例分析

6.4 本章習題、總結與延伸

第7章 且慢,探尋表的設計讓SQL飛

7.1 表設計

7.2 表設計與SQL優化

7.3 相關優化案例分析

7.4 本章習題、總結與延伸

第8章 且慢,學習索引如何讓SQL飛

8.1 索引知識要點概述

8.2 索引的SQL優化

8.3 索引相關優化案例

8.4 本章習題、總結與延伸

第9章 且慢,弄清索引之阻礙讓SQL飛

9.1 索引的不足之處

9.2 感受美好索引另一面

9.3 從案例看索引各種恨

9.4 本章習題、總結與延伸

第10章 且慢,其他索引應用讓SQL飛

10.1 其他索引的總體概述

10.2 走進其他索引的世界

10.3 其他索引的相關案例

10.4 本章習題、總結與延伸

第11章 且慢,表連接的秘密讓SQL飛

11.1 三大經典表連接概要說明

11.2 各類型表連接的知識要點

11.3 從案例學表連接優化要點(三刀三斧四式走天下)

11.4 本章習題、總結與延伸

第12章 動手,經典等價改寫讓SQL飛

12.1 設法減少訪問路徑

12.2 設法避免外因影響

12.3 本章習題、總結與延伸

第13章 動手,過程函數優化讓SQL飛

13.1 PL/SQL優化重點

13.2 PL/SQL優化其他相關擴展

13.3 本章習題、總結與延伸

第14章 動手,高級寫法應用讓SQL飛

14.1 具體SQL調優思路

14.2 高級SQL介紹與案例

14.3 本章習題、總結與延伸

第15章 動手,分析函數讓SQL飛

15.1 高級SQL之分析函數

15.2 分析函數詳解與案例

15.3 本章習題、總結與延伸

第16章 動手,把握需求改寫讓SQL飛

16.1 考慮需求最小化

16.2 千萬弄清SQL改造的等價性

16.3 開發設計應用中的需求

16.4 場景選擇的經典案例之誰是Count(*)之王

16.5 本章習題、總結與延伸

第17章 總結與延伸:從勿信訛傳到洞若觀火

17.1 SQL優化的各個誤區

17.2 誤區背后的話題擴展

17.3 全書完,致讀者

收獲 不止SQL優化 抓住SQL的本質 精彩文摘

只有站得高,你才看得遠

從前言故事中,大家可以明白一個道理:SQL優化是一個復雜的工程,首先要講究從整體到局部。嗯,那我們就從整體開始吧。首先,我們學習關于數據庫整體優化都有哪些性能工具;接著分析這些工具的特點,并結合案例進行探索;最后再進行本章課程的總結和思考。總體學習思路如下圖所示:

都有哪些性能工具呢?這里首先要分成兩部分:一種是不同調優場景的分析,可分為單純場景的優化和復雜場景的優化;而另一種是基于這些場景的工具應用,就是針對單純場景的優化手段和復雜場景的優化手段。

我們繼續探討,單純是有多單純呢?哦,其實可以理解為無菌真空實驗室里的實驗。比如一條SQL很慢,原因是未走高效的索引查詢而走全表掃描,加個索引就快了,執行速度從 10s變成了0.1s;或者一條SQL執行速度被優化到1s左右,邏輯讀控制在50個左右,應該就已經OK。這就是單純的環境,我們差不多無須再考慮優化了。

那啥是復雜呢?那就是,剛才那個語句加了索引后,本應該從 10s變成0.1s,結果還是10s,甚至變成 30s了,這是咋回事呢?原來,現在系統是整體出問題了,數據庫主機資源耗盡,啥語句都跑不快的。還有那個邏輯讀在 50 左右的SQL,如果一天執行幾百幾千萬次,這要是能將邏輯讀降低一點,得省多少的邏輯讀啊。原來復雜環境真的很復雜,要考慮SQL本身沒問題而是被環境影響,還要考慮SQL的執行頻率,判斷其調優價值與調優空間,這些在單純的環境里,是不用考慮的。

接下來,我們說說這兩種場景對應的工具的使用。關于局部分析調優工具,這個其實就是在說SQL的執行計劃了,這是SQL優化最重要的手段之一,通過分析執行計劃,我們可以知道SQL語句的訪問路徑,知道它慢在哪里,從而進行SQL優化。由于在隨后的章節中我們會詳細介紹執行計劃相關知識,這里就不再細述了。

圖書網:收獲 不止SQL優化 抓住SQL的本質pdf

  • 我的微信
  • 掃一掃加好友
  • weinxin
  • 微信公眾號
  • 掃一掃關注(網站備用地址)
  • weinxin

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: