如果在一個系統中,用戶反映系統太卡,那么我們可以怎么進行優化呢?
如果http請求過多,則可以認定是web服務器承受的壓力過大,可以增加web服務器,做負載均衡進行優化。
如果我們訪問靜態界面不卡頓,但是申請動態數據的時候發生卡頓,說明我們數據庫所處理的請求過多,這時候有大量的查詢壓力到數據庫,這時候就需要考慮數據庫的優化了。
要想知道我們數據庫優化究竟在做一些什么事情,首先我們需要了解MySQL的執行過程。
圖源自網絡,如有侵權請聯系刪除。
mysql執行過程
當我們請求連接mysql服務器時,mysql會對請求有一個監聽,當我們發起的請求到達以后,服務器得到我們需要執行的SQL語句,這時我們的SQL語句就進入MYSQL的內部。
MYSQL會首先查詢緩存,看這個SQL語句是否執行過,如果我們執行過這個SQL語句,則把緩存中的執行結果返回,但是在MYSQL中,這個查詢緩存默認是不開啟的,因為查詢緩存要求SQL語句和參數都要一樣,所以基本上緩存中的數據我們都命中不了。
如果我們沒有開啟查詢緩存,或者查詢緩存卻沒有找到對應的結果,這時候SQL語句就傳到了解析器中。解析器會對要執行的SQL語句進行解析,然后SQL語句就變成一顆解析樹,這時候解析樹不能馬上就執行,還需要對解析樹進行預處理,預處理的目的在于規定常量的存儲位置,計算表達式并返回結果等。
預處理結束后,此時這棵樹就是要進行執行的樹,在和初始的解析樹對比,這棵樹得到了一些優化。
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數據庫優化的方式分享”有了更深的了解,不妨來實際操作一番吧!這里是本站網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
老漁船能經受住海水和海風幾十年甚至上百年的侵蝕,跟它們的材質有很大關系。古人用作大型海船的樹種很多,多為高密度、高硬度、油性或蠟質的優質樹種,主要有坤甸木、楸樹、柚木、鳳梨格、鐵梨木等。另外,海船體積較大,所以一般都是生長了100年以上的原木,平均直徑6米,高50多米。盡管如此,退役的古船木已經面目全非,需要經過烘干、清洗、干燥等一系列特殊工藝才能作為家具的原材料。喜歡那種船木的人,有特殊的紋理和...
順豐同城騎士單日收入過萬是真的嗎?【#順豐同城回應騎士單日收入過萬#:含用戶打賞約7856元】4月11日晚間,@順豐同城 回應網上關于“順豐同城騎士收入過萬”的消息。據悉,近日網上截圖顯示一順豐同城騎士4月9日實際收入10067.75 元。順豐同城表示,經后臺查詢后確認,該順豐同城騎士共完成60筆同城配送訂單,系企業用戶下單,訂單傭金計提總額達10067.75 元。說明顯示...
最近小編看到大家都在討論關于諸葛亮的小說相關的事情,對此呢小編也是非常的感應興趣,那么這件事究竟是怎么發生的呢?具體又是怎么回事呢?下面就是小編搜索到的關于關于諸葛亮的小說事件的相關信息,我們一起來看一下吧!關于諸葛亮的小說如下:1、《三國之蜀漢中興》,作者為寒塘鴉影;(相關資料圖)2、《重生三國我做主》,作者為江南強子;3、《重生之孔明異世點將錄》,作者為仆王之王;4、《我哥是諸葛亮》,作者為叢...