亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL SQL語句分析與查詢優化詳解

2024-07-25 19:08:07
字體:
來源:轉載
供稿:網友

如何獲取有性能問題的SQL

1、通過用戶反饋獲取存在性能問題的SQL
2、通過慢查詢日志獲取性能問題的SQL
3、實時獲取存在性能問題的SQL

使用慢查詢日志獲取有性能問題的SQL

首先介紹下慢查詢相關的參數

1、slow_query_log 啟動定制記錄慢查詢日志
設置的方法,可以通過MySQL命令行設置set global slow_query_log=on
或者修改/etc/my.cnf文件,添加slow_query_log=on

2、slow_query_log_file 指定慢查詢日志的存儲路徑及文件
建議日志存儲和數據存儲分開存儲

3、long_query_time 指定記錄慢查詢日志SQL執行時間的閾值
① 記錄所有符合條件的SQL
② 數據修改語句
③ 包括查詢語句
④ 已經回滾的SQL

注意:
時間可以精確到微秒,存儲的單位是秒,默認值為10秒,例如我們想查詢1微秒的值,這里就要設置成0.001秒

4、log_queries_not_using_indexes 是否記錄未使用索引的SQL

5、log_output 設置慢日志查詢的保存格式(如果需要保存為文件請修改成FILE)

慢查詢使用日志中記錄的信息

MySQL,查詢優化

1、第一行記錄的信息為使用sbtest做的測試
2、第二行記錄的信息為慢查詢日志的時間
3、第三行記錄的信息為所使用鎖的時間
4、第四行記錄的信息為返回的數據行數
5、第五行記錄的信息為掃描數據的行數
6、第六行記錄的信息為時間戳
7、第七行記錄的信息為查詢的SQL語句

使用慢查詢獲取有性能問題的SQL

常使用的慢查詢日志分析工具(mysqldumpslow)
介紹:匯總除查詢條件外其他完全相同的SQL,并將分析結果按照參數中所指定的順序輸出

MySQL,查詢優化
MySQL,查詢優化

慢查詢日志實例

慢查詢的相關配置設置

MySQL,查詢優化

命令行執行參數查看分析的結果

]# cd /var/lib/mysql/log
]# mysqldumpslow -s r -t 10 slow-mysql

MySQL,查詢優化

常使用的慢查詢日志分析工具(pt-query-digest)

使用工具前,需要先安裝該工具,如果已有,可略過下面的安裝步驟
1、perl模塊
]# yum install -y perl-CPAN perl-Time-HiRes perl-IO-Socket-SSL perl-DBD-mysql perl-Digest-MD5
2、切換至src目錄下載rpm包
]# cd /usr/local/src
]# wget https://www.percona.com/downloads/percona-toolkit/3.0.7/binary/redhat/7/x86_64/percona-toolkit-3.0.7-1.el7.x86_64.rpm

3、安裝工具包
]# rpm -ivh percona-toolkit-3.0.7-1.el7.x86_64.rpm

執行命令分析慢查詢日志

]# pt-query-digest --user=root --password=redhat --host=127.0.0.1 slow-mysql > slow.rep
分析的結果如下

MySQL,查詢優化

MySQL服務器處理查詢請求的整個過程

1、客戶端發送SQL請求給服務器
2、服務器檢查是否存在在緩存服務器中命中該SQL
3、服務器端進行SQL解析,預處理,再由優化器對應執行計劃
4、根據執行計劃,調用存儲引擎API來查詢數據
5、將結果返回給客戶端

查詢緩存對SQL性能的影響

1、優先檢查整個查詢是否命中查詢緩存中的數據
2、通過一個對大小寫敏感的哈希查找實現的

查詢緩存的優化參數

query_cache_type 設置查詢緩存是否可用
ON,OFF,DEMAND

注意:DEMAND表示只有在查詢語句中使用SQL——CACHE和SQL_NO_CACHE來控制是否需要緩存

query_cache_size 設置查詢緩存的內存大小

query_cache_limit 設置查詢緩存可用存儲的最大值

query_cache_wlock_invalidate 設置數據表被鎖后是否返回緩存中的數據(默認是關閉的,建議也是關閉的此選項)

query_cache_min_res_unit 設置查詢緩存分配的內存塊最小的值

會造成MySQL生成錯誤的執行計劃的原因

1、統計信息不準確
2、執行計劃中的成本估算不等同于實際的執行計劃的成本
3、MySQL優化器所認為的最優可能與你所認為的最優不一樣
4、MySQL從不考慮其他并發的查詢,這可能會影響當前查詢數據
5、MySQL有時候也會基于一些固定的規則來生成執行計劃
6、MySQL不會考慮不受其控制的成本

MySQL優化器可優化的SQL類型

1、重新定義表的關聯順序
優化器會根據統計信息來決定表的關聯順序

2、將外鏈接轉換成內連接
where條件和庫表結構等

3、使用等價變換規則
(5=5 and a > 5)將會被改寫成 a > 5

4、優化count(), min()和max()
select tables optimized away
優化器已經從執行計劃中移除了該表,并以一個常數取而代之

5、將一個表達式轉換為常數表達式

6、使用等價變換規則

7、子查詢優化

8、對in()條件進行優化

如何確定查詢處理各個階段所消耗的時間

使用profile

set profiling = 1;
執行查詢:
show profiles;

show profile for query N;

查詢的每個階段所消耗的時間

使用profile查看語句所消耗的時間

MySQL,查詢優化

特定的SQL查詢優化

1、利用主從切換的原理進行大表的表結構修改,例如,現在從服務器上修改,修改完畢以后,進行主從切換,再在原來老的主上進行大表的修改,存在一定的風險。
2、在主服務器上創建于一個新的表,表結構就是將要修改大表后表結構,再把老表的數據重新導入到新表中,并在老表中建立一系列的觸發器,把老表的數據同步更新到新表中,當老表中的數據全部同步到新表以后,再對老表加排它鎖,把新表改成老表的名稱,刪除重命名的老表,如下圖所示

MySQL,查詢優化
MySQL,查詢優化

使用pt-online-schema-change命令來修改大表,具體操作如下圖所示

MySQL,查詢優化

上圖的參數解釋

--alter 所使用的sql語句
--user 數據庫的登錄用戶
--password 登錄用戶的密碼
D 指定所有修改表的數據庫名稱
t 表的名稱
--charset 指定數據庫的字符串
--excute 執行

原創作品,轉載請注明出處


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区国产精品| 亚洲男人天堂网站| 亚洲一区二区在线播放| 国产精自产拍久久久久久| 久久久久久久久网站| 中文字幕精品—区二区| 欧美日韩高清在线观看| 日本韩国在线不卡| 国产精品88a∨| 欧美电影在线观看网站| 国产精选久久久久久| 高清亚洲成在人网站天堂| 成人xvideos免费视频| 日韩精品中文字幕有码专区| 美女国内精品自产拍在线播放| 久久久久久高潮国产精品视| 亚洲高清不卡av| 91精品国产高清久久久久久久久| 中文字幕国产亚洲| 大荫蒂欧美视频另类xxxx| 麻豆国产va免费精品高清在线| 亚洲一区精品电影| 久久久久久亚洲精品不卡| 欧美日韩激情视频8区| 一区二区国产精品视频| 色噜噜国产精品视频一区二区| 国产成人精品久久二区二区| 97热在线精品视频在线观看| www.亚洲免费视频| 久久久久久久久久婷婷| 日韩高清a**址| 亚洲成人久久久| 国产精品ⅴa在线观看h| 国产精品91在线| 国产剧情日韩欧美| 成人久久久久爱| 中文字幕最新精品| 国产97在线|日韩| 最近免费中文字幕视频2019| 欧美精品免费看| 久久久亚洲欧洲日产国码aⅴ| 亚洲国产私拍精品国模在线观看| 亚洲黄在线观看| 欧美在线视频在线播放完整版免费观看| 国产精品久久久久久婷婷天堂| 亚洲自拍小视频免费观看| 91性高湖久久久久久久久_久久99| 精品国产鲁一鲁一区二区张丽| 最近2019好看的中文字幕免费| 日韩在线视频导航| 久久久黄色av| 成人精品网站在线观看| 久久国产精彩视频| www.美女亚洲精品| 欧美专区在线观看| 欧美多人乱p欧美4p久久| 日韩中文在线中文网三级| 伊人久久久久久久久久| 久久精品国产亚洲7777| 亚洲精品一区二区久| 欧美性猛交xxxx久久久| 欧美日韩国产激情| 少妇久久久久久| 欧美成aaa人片在线观看蜜臀| 久久伊人91精品综合网站| 日韩精品免费综合视频在线播放| 亚洲一区二区三区乱码aⅴ蜜桃女| 最近2019中文字幕mv免费看| 最近2019中文字幕一页二页| 91精品国产沙发| 欧美成人午夜激情视频| 亚洲激情视频网| 日韩经典第一页| 国产精品中文字幕久久久| 国产精品手机播放| 在线观看成人黄色| 亚洲精品乱码久久久久久金桔影视| 欧美xxxwww| 亚洲国产成人一区| 亚洲久久久久久久久久| 亚洲美女激情视频| 精品国产自在精品国产浪潮| 久久影视电视剧免费网站清宫辞电视| 福利视频第一区| 亚洲色图色老头| 国产精品久久久久久久久男| 亚洲欧美成人一区二区在线电影| 日av在线播放中文不卡| 91在线观看免费高清完整版在线观看| 成人h猎奇视频网站| 色妞欧美日韩在线| 亚洲欧洲国产一区| 清纯唯美亚洲综合| 久久久亚洲影院你懂的| 欧美另类高清videos| 在线视频亚洲欧美| 国产区亚洲区欧美区| 亚洲视频电影图片偷拍一区| 欧美综合国产精品久久丁香| 中文字幕一区日韩电影| 欧美性色19p| 麻豆国产精品va在线观看不卡| 亚洲国产精品久久| 热久久美女精品天天吊色| 亚洲成人黄色在线| 国产成人一区三区| 欧美日韩国产成人| 国内揄拍国内精品少妇国语| 久久久极品av| 亚洲人成网站色ww在线| 最近免费中文字幕视频2019| 日韩欧美中文第一页| 狠狠综合久久av一区二区小说| 在线亚洲午夜片av大片| 成人免费看片视频| 亚洲一区二区中文字幕| 欧美有码在线观看| 精品国内自产拍在线观看| 亚洲免费人成在线视频观看| 日本久久中文字幕| 一区二区三区四区精品| 国产va免费精品高清在线观看| 永久免费看mv网站入口亚洲| 日韩精品极品在线观看| 久久久国产精品免费| 久久久免费在线观看| 日韩欧美高清在线视频| 国产激情久久久| 亚洲大尺度美女在线| 色樱桃影院亚洲精品影院| 亚洲国产精品久久91精品| 精品成人久久av| 欧美国产欧美亚洲国产日韩mv天天看完整| 色偷偷偷亚洲综合网另类| 97久久伊人激情网| 成人美女av在线直播| 国产精品丝袜久久久久久不卡| 91国内产香蕉| 亚洲精品理论电影| 在线观看欧美日韩| 亚洲性夜色噜噜噜7777| 欧美极品xxxx| 欧美性生交大片免费| 91久久嫩草影院一区二区| 欧美一级电影免费在线观看| 日韩精品中文字幕久久臀| 久久av中文字幕| 国产精品极品美女在线观看免费| 国产日韩欧美在线视频观看| 欧美亚洲午夜视频在线观看| 欧美另类高清videos| 亚洲精品自拍第一页| 亚洲精品国精品久久99热一| 亚洲人成电影在线| 一区二区三区国产视频| 久久99久久久久久久噜噜| 国内精品视频一区| 九九久久综合网站| 尤物yw午夜国产精品视频| 欧美国产日韩中文字幕在线| 91精品久久久久久久久久| 92福利视频午夜1000合集在线观看| 欧美日韩免费观看中文| 日本精品免费一区二区三区|