mysql 分析查詢語句,MySQL教程之SQL語句分析查詢優化

18328ca475ad3c8827071a543e0a8e90.png

怎么獲取有功能問題的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)

慢查詢運用日志中記載的信息

1、榜首行記載的信息為運用sbtest做的測驗

2、第二行記載的信息為慢查詢日志的時刻

3、第三行記載的信息為所運用鎖的時刻

4、第四行記載的信息為回來的數據行數

5、第五行記載的信息為掃描數據的行數

6、第六行記載的信息為時刻戳

7、第七行記載的信息為查詢的SQL句子

運用慢查詢獲取有功能問題的SQL

常運用的慢查詢日志剖析東西(mysqldumpslow)

介紹:匯總除查詢條件外其他完全相同的SQL,并將剖析成果依照參數中所指定的次序輸出

慢查詢日志實例

慢查詢的相關裝備設置

指令行履行參數檢查剖析的成果

]# cd /var/lib/mysql/log]# mysqldumpslow -s r -t 10 slow-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服務器處理查詢懇求的整個進程

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;

履行查詢: showprofiles; show profile forqueryN; 查詢的每個階段所耗費的時刻

運用profile檢查句子所耗費的時刻

特定的SQL查詢優化

1、運用主從切換的原理進行大表的表結構修正,例如,現在從服務器上修正,修正結束今后,進行主從切換,再在本來老的主上進行大表的修正,存在必定的危險。2、在主服務器上創建于一個新的表,表結構便是即將修正大表后表結構,再把老表的數據從頭導入到新表中,并在老表中樹立一系列的觸發器,把老表的數據同步更新到新表中,當老表中的數據悉數同步到新表今后,再對老表加排它鎖,把新表改成老表的稱號,刪去重命名的老表,如下圖所示

運用pt-online-schema-change指令來修正大表,具體操作如下圖所示

上圖的參數解說

--alter 所運用的sql句子

--user 數據庫的登錄用戶

--password 登錄用戶的暗碼

D 指定一切修正表的數據庫稱號

t 表的稱號

--charset 指定數據庫的字符串

--excute 履行

作者:demon_gdy

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532840.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532840.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532840.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于PyTorch中的register_forward_hook()函數未能執行其中hook函數的問題

關于PyTorch中的register_forward_hook()函數未能執行其中hook函數的問題 Hook 是 PyTorch 中一個十分有用的特性。利用它,我們可以不必改變網絡輸入輸出的結構,方便地獲取、改變網絡中間層變量的值和梯度。這個功能被廣泛用于可視化神經網絡中間層的 f…

geoda權重矩陣導入matlab,空間計量經濟學-分析解析.ppt

廈門大學 鄧明 空間截面回歸模型 地理加權回歸模型 地理加權回歸模型擴展了普通線性回歸模型。在GWR模型中,特定區位的回歸系數不再是利用全部信息獲得的假定常數,而是利用鄰近觀測值的子樣本數據信息進行局域(Local)回歸估計而得,并隨著空間…

樹莓派攝像頭基礎配置及測試

樹莓派攝像頭基礎配置 step 1 硬件連接 硬件連接,注意不要接反了,排線藍色一段朝向網口的方向。(筆者的設備是樹莓派4B) step 2 安裝raspi-config 安裝 raspi-config raspi-config在raspbian中是預裝的,而在kali、…

matlab sobel銳化,sobel銳化 - yirui wu.ppt

sobel銳化 - yirui wu第六章 圖像銳化 圖像銳化的概念 圖像銳化的目的是加強圖像中景物的細節邊緣和輪廓。 銳化的作用是使灰度反差增強。 因為邊緣和輪廓都位于灰度突變的地方。所以銳化算法的實現是基于微分作用。 圖像銳化方法 圖像的景物細節特征; 一階微分銳化…

使用百度云智能SDK和樹莓派搭建簡易的人臉識別系統 Python語言版

硬件 樹莓派4B一個CSI攝像頭一個 筆者使用的是樹莓派4B和CSI攝像頭,但是樹莓派3和USB攝像頭等相似設備均可。 百度云智能設置 Step 1 登錄 百度云智能 網址https://cloud.baidu.com/ 首先登錄百度賬號,與百度云、百度貼吧等互通,可直接…

php 5.6 引用傳遞,升級到5.6.x后如何在php中修復引用傳遞

我最近將fom php 5.2升級到5.6,并且有一些代碼我無法修復://Finds users with the same ip- or email-addressfunction find_related_users($user_id) {global $pdo;//print_R($pdo);//Let SQL do the magic!$sth $pdo->prepare(CALL find_related_users(?));$…

RuntimeError: [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip arc

RuntimeError: [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip archive: failed finding central directory 原因分析 這個報錯是出現在PyTorch在讀入模型參數時: checkpoint torch.load(epoch_15.pth, map_locationcpu)…

xp搭建 php環境,windows xp 下 LAMP環境搭建

1. apache安裝步驟如下圖在瀏覽器中輸入:localhost,出現下面頁面說明已成功安裝apache。2. mysql安裝如下圖顯示在運行里面輸入cmd ,然后連接測試mysql ,如圖所示:3. php安裝(1)將php壓縮包解壓到安裝路徑中的php目錄…

C++中的虛函數(表)實現機制以及用C語言對其進行的模擬實現

C中的虛函數(表)實現機制以及用C語言對其進行的模擬實現 聲明:本文非博主原創,轉自https://blog.twofei.com/496/,博主讀后受益良多,特地轉載,一是希望好文能有更多人看到,二是為了日后自己查閱。 前言 …

php 前端模板 yii,php – Yii2高級模板:添加獨立網頁

我在backend / views / site下添加了help.php,并在SiteController.php下聲明了一個能夠識別鏈接的函數public function behaviors(){return [access > [class > AccessControl::className(),rules > [[actions > [login, error],allow > true,],[actions > […

C++中數組和指針的關系(區別)詳解

C中數組和指針的關系(區別)詳解 本文轉自:http://c.biancheng.net/view/1472.html 博主在閱讀后將文中幾個知識點提出來放在前面: 沒有方括號和下標的數組名稱實際上代表數組的起始地址,這意味著數組名稱實際上就是…

安裝php獨立環境,0507-php獨立環境的安裝與配置 Web程序 - 貪吃蛇學院-專業IT技術平臺...

1.在一個純英文目錄下新建三個文件夾2.安裝apache(選擇好版本)過程中該填的按格式填好,其余的只更改安裝目錄即可如果報錯1901是安裝版本的問題。檢查:安裝完成后localhost打開為It works!添加到電腦屬性環境變量:3.將php文件解壓文檔放到AMP…

linux中PATH變量-詳細介紹

轉自:https://blog.csdn.net/haozhepeng/article/details/100584451 轉載者勘誤 原文最后提到的 echo 命令對于環境變量的修改無影響。這是肯定的,echo 命令相當于只是一個打印的函數(比如 Python 中的 print)。這里要修改環境變…

php assert eval,代碼執行函數之一句話木馬

前言大家好,我是阿里斯,一名IT行業小白。非常抱歉,昨天的內容出現瑕疵比較多,今天重新整理后再次發出,修改并添加了細節,另增加了常見的命令執行函數如果哪里不足,還請各位表哥指出。eval和asse…

顯卡、顯卡驅動、CUDA、CUDA Toolkit、cuDNN 梳理

顯卡、顯卡驅動、CUDA、CUDA Toolkit、cuDNN 梳理 轉自:https://www.cnblogs.com/marsggbo/p/11838823.html#nvccnvidia-smi GPU型號含義 顯卡: 簡單理解這個就是我們前面說的GPU,尤其指NVIDIA公司生產的GPU系列,因為后面介紹的…

php中msubstr,PHP學習:thinkphp中字符截取函數msubstr()用法分析

《PHP學習:thinkphp中字符截取函數msubstr()用法分析》要點:本文介紹了PHP學習:thinkphp中字符截取函數msubstr()用法分析,希望對您有用。如果有疑問,可以聯系我們。本文實例講述了thinkphp中字符截取函數msubstr()用法…

VS Code的Error: Running the contributed command: ‘_workbench.downloadResource‘ failed解決

VS Code的Error: Running the contributed command: _workbench.downloadResource failed解決 轉自:https://blog.csdn.net/ibless/article/details/118610776 1 問題描述 此前,本人參考網上教程在VS Code中配置了“Remote SSH”插件(比如這…

Oracle閃回報錯,oracle 閃回區滿了,ORA-19815

oracle 閃回區滿了,查看日志報錯:ORA-19815,命令行輸入:sqlplus / as sysdbastartup mount //如果你的數據庫出現了無法連接的情況時,可以加上這句select file_type, percent_space_used as used,percent_space_rec…

[2021-ICCV] MUSIQ Multi-scale Image Quality Transformer 論文簡析

[2021-ICCV] MUSIQ: Multi-scale Image Quality Transformer 論文簡析 論文:https://arxiv.org/abs/2108.05997 代碼:https://github.com/google-research/google-research/tree/master/musiq 概述 當前SOTA的IQA(圖像質量評估&#xff0…

安裝oracle不動了,windows2008安裝ORACLE到2%不動的問題 | 信春哥,系統穩,閉眼上線不回滾!...

最近又有網友遇到在windows2008服務器上安裝ORACLE軟件時到2%就卡住不動的問題,下面是該網友的描述:oralce 11g r2 windows server 2008 R2安裝到最后一步復制數據文件時卡到2% 不走了內存一直飆升求解決這個問題前段時間也有人遇到過,但是他…