<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
MySQL效能優化是一個老生常談的問題,無論是在實際工作中還是面試中,都不可避免遇到相應的場景,下面博主就總結一些能夠幫助大家解決這個問題的小技巧。
SQL優化之前需要確認哪些SQL需要優化,這時就需要引起SQL效能分析工具,主要優化的是查詢語句。
SQL效能優化一般是針對查詢語句,所以在定位是否需要優化之前,可以先確認表的更刪查改的一個執行頻率對比,如果是查詢占主導地位,則可以一步排查。
MySQL支援使用者端通過show [session|global] status命令對伺服器狀態進行查詢。
檢視執行頻率方式:
show global status like ‘com_______’(7個下劃線,表示後面會有7個字元)
確認了SQL的執行頻率,則需要通過慢查詢紀錄檔進行進一步定位哪些SQL語句執行時間佔用較長。
慢查詢紀錄檔記錄了所有執行時間超過指定引數(long_query_time,單位:秒,預設是10s)的所有SQL語句的紀錄檔。
預設情況下,慢查詢紀錄檔是沒有開啟的,需要在MySQL的組態檔(linux下為:/etc/my.cnf)中設定如下指令:
window可以在my.ini檔案中設定具體的地址
Query_time SQL執行的時間,越長則越慢
Lock_time 在MySQL伺服器階段(不是在儲存引擎階段)等待表鎖時間
Rows_sent 查詢返回的行數
Rows_examined 查詢檢查的行數
通過慢查詢紀錄檔,我們可以定位到超過設定閾值的慢SQL,但是實際業務中,這並不能完全具有代表性,因為閾值是主觀設定的,可能有大量執行時間低於閾值的SQL也存在問題,因此慢紀錄檔SQL並不能完全定位出所有的慢SQL。
show profiles 能夠讓我們瞭解到SQL執行時時間都耗費到哪裡了。 通過have_profiling引數,可以檢視mysql是否支援該profile操作。
格式: select @@have_profiling;
預設情況下,profiling是關閉的,可以同set指令開啟session|global級別的profiling。
格式: set global | session profiling = 1;
優化方案:
前面介紹的幾種方式都是通過執行時間長短來判斷SQL語句執行的效能好壞,但是這個相對來說是比較片面的,想要更全面地評判SQL語句好壞,則需要使用explain檢視SQL的執行計劃。
Explain或者DESC命令獲取MySQL如何執行SELECT語句的資訊,包括在SELECT語句過程中表如何連線和連線的順序。
語法:explain | desc select xxxx...
select中的查詢序號,表示的是查詢中執行select子句或者是操作表的順序(id相同,執行順序從上往下,id不同,值越大,越先執行)
表示select查詢型別,常見的有SIMPLE(簡單表,即不使用表連線或者子查詢)、primary(主查詢,即外層查詢)、UNION(UNION中的第二個或者後面的查詢語句)、SUBQUERY(SELECT/WHERE之後包含了子查詢)
表示連線/存取型別,效能由好到差的連線型別為:null、system、const、eq_ref、ref、range、index、all
在優化的時候,儘量將type往前優化,最差也要為index
4、possible_key引數:顯示在執行查詢時,表中可能被使用到的索引,一個或者多個、
5、key引數:在執行查詢時,實際上會命中的索引
6、key_len引數:表示使用到的索引的位元組數,該值為索引欄位最大可能長度,在不損失精確性的前提下,長度越短越好。
7、rows引數:MySQL認為必須要執行查詢的行數,在idb引擎表中,是一個估計值,可能並不總是準確的
8、ref引數:待確認?
9、filtered引數:表示查詢返回的行數佔總讀取行數的百分比,值越大越好
10、extra引數:額外的一些執行資訊如排序
以上就是MySQL資料庫查詢效能優化的4個技巧幹貨的詳細內容,更多關於MySQL查詢效能優化的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45