91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MYSQL數據庫優化的方式分享

發布時間:2021-08-27 09:12:21 來源:億速云 閱讀:166 作者:chen 欄目:大數據

本篇內容主要講解“MYSQL數據庫優化的方式分享”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MYSQL數據庫優化的方式分享”吧!

如果在一個系統中,用戶反映系統太卡,那么我們可以怎么進行優化呢?

  1. 如果http請求過多,則可以認定是web服務器承受的壓力過大,可以增加web服務器,做負載均衡進行優化。

  2. 如果我們訪問靜態界面不卡頓,但是申請動態數據的時候發生卡頓,說明我們數據庫所處理的請求過多,這時候有大量的查詢壓力到數據庫,這時候就需要考慮數據庫的優化了。


要想知道我們數據庫優化究竟在做一些什么事情,首先我們需要了解MYSQL的執行過程。

MYSQL數據庫優化的方式分享

圖源自網絡,如有侵權請聯系刪除。

mysql執行過程

  1. 當我們請求連接mysql服務器時,mysql會對請求有一個監聽,當我們發起的請求到達以后,服務器得到我們需要執行的SQL語句,這時我們的SQL語句就進入MYSQL的內部。

  2. MYSQL會首先查詢緩存,看這個SQL語句是否執行過,如果我們執行過這個SQL語句,則把緩存中的執行結果返回,但是在MYSQL中,這個查詢緩存默認是不開啟的,因為查詢緩存要求SQL語句和參數都要一樣,所以基本上緩存中的數據我們都命中不了。

  3. 如果我們沒有開啟查詢緩存,或者查詢緩存卻沒有找到對應的結果,這時候SQL語句就傳到了解析器中。解析器會對要執行的SQL語句進行解析,然后SQL語句就變成一顆解析樹,這時候解析樹不能馬上就執行,還需要對解析樹進行預處理,預處理的目的在于規定常量的存儲位置,計算表達式并返回結果等。

  4. 預處理結束后,此時這棵樹就是要進行執行的樹,在和初始的解析樹對比,這棵樹得到了一些優化。


MYSQL數據庫里面最關鍵的知識點,就是查詢優化器。比如我們寫這么一條SQL語句:SELECT  *  FROM  BOOK  WHERE  BOOKNAME = 'BODY'  AND  PRICE  =  56,只是SQL語句會怎么去進行執行呢?它會先執行BOOKNAME = 'BODY'還是 PRICE  =  56呢?SQL語句的執行順序就是根據數據庫對數據統計表的一些信息,比如索引或者表中一共有多少行數據,MYSQL數據庫都是會進行緩存的,這時查詢優化器就會根據這些數據進行一個判定,判斷這一個SQL語句的執行過程中到底選擇哪種執行方式,運行結果可能更快。所以說這一步操作其實是MYSQL性能中最關鍵的核心,這也是我們優化所需要遵循的原則。

所以說我們平常所說的優化SQL,其實就是想讓查詢優化器能按照我們的想法,選擇最佳的執行方案,因為我們更清楚的知道我們的數據,而MYSQL看到的數據僅僅是自己收集到緩存的那一部分信息,而這些信息的正確性不能得以保證,MYSQL根據它收集到的信息選擇一個它認為最佳的執行方案,但是這個方案很有可能和我們想要它執行的方案不一致。

這里說到的選擇執行方案,其實就是剛才舉例所講的先執行BOOKNAME = 'BODY'還是 PRICE  =  56,這個執行方案會傳給查詢執行引擎,引擎會去執行這一份接收到的執行方案。這個時候有一個很重要的問題:影響這個查詢性能的最關鍵原因是什么呢?其實就是我們最常講到的IO,一條SQL語句執行的時間,就是由這個時間段的IO來決定的。而執行IO又是由數據庫傳過去的這個執行方案來決定的。如果我們開啟了查詢緩存,則在將結果返回給客戶端之前,也會將執行結果存放到查詢緩存中,下一次進行該查詢會直接在查詢緩存中返回執行結果。

到此,相信大家對“MYSQL數據庫優化的方式分享”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张家口市| 镇巴县| 滦平县| 南江县| 宜都市| 临漳县| 略阳县| 杭锦后旗| 青海省| 莫力| 罗江县| 白山市| 连江县| 封丘县| 屏南县| 饶河县| 江津市| 永安市| 浙江省| 珲春市| 乐昌市| 宜城市| 凌海市| 赣榆县| 江都市| 威信县| 翁源县| 枣强县| 德兴市| 隆安县| 株洲市| 宁安市| 井冈山市| 乌兰浩特市| 郸城县| 达拉特旗| 盐亭县| 疏附县| 寿阳县| 宁远县| 渝北区|