溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MYSQL數(shù)據(jù)交互原理與性能問(wèn)題分析

發(fā)布時(shí)間:2020-07-12 00:25:01 來(lái)源:網(wǎng)絡(luò) 閱讀:482 作者:郭柏雅 欄目:MySQL數(shù)據(jù)庫(kù)

我們?cè)谛阅軠y(cè)試監(jiān)控MYSQL數(shù)據(jù)庫(kù)時(shí),作為專業(yè)非功能性測(cè)試人員,我們需要了解操作系統(tǒng)工作原理、業(yè)務(wù)實(shí)現(xiàn)架構(gòu)邏輯、應(yīng)用架構(gòu)實(shí)現(xiàn)邏輯、數(shù)據(jù)庫(kù)工作原理,才能真正的做好非功能性測(cè)試,而大部分業(yè)務(wù)型交易問(wèn)題都是因?yàn)閿?shù)據(jù)庫(kù)問(wèn)題原因產(chǎn)生的性能瓶頸,而更多數(shù)情況都是因?yàn)閷?duì)數(shù)據(jù)庫(kù)出現(xiàn)問(wèn)題的情況和處理思路不清晰。在進(jìn)行MySQL的優(yōu)化之前必須要了解的就是MySQL的查詢過(guò)程,也就是實(shí)際前端業(yè)務(wù)操作到從磁盤撈取數(shù)據(jù)整個(gè)實(shí)現(xiàn)過(guò)程如果運(yùn)作,了解了這些,明白查詢優(yōu)化是遵循MySQL優(yōu)化器方式運(yùn)行,具體如下圖:

MYSQL數(shù)據(jù)交互原理與性能問(wèn)題分析
根據(jù)上圖所示我們了解到,無(wú)論是手機(jī)端還是PC端,例如我們點(diǎn)餐系統(tǒng),通過(guò)APP客戶端,我們查詢要點(diǎn)的餐飲,這時(shí)通過(guò)網(wǎng)絡(luò)連接同數(shù)據(jù)庫(kù)服務(wù)層建立TCP連接。

讀寫數(shù)據(jù)方式
1、步驟一與數(shù)據(jù)庫(kù)連接建立:
連接管理模塊會(huì)建立連接,并請(qǐng)求一個(gè)連接線程。如果連接池中有空閑的連接線程,則分配給這個(gè)連接,如果沒(méi)有,在沒(méi)有超過(guò)最大連接數(shù)的情況下,創(chuàng)建新的連接線程負(fù)責(zé)這個(gè)客戶端。

2、步驟二檢查語(yǔ)法
接下來(lái)驗(yàn)證用戶是否有權(quán)限。例如你有注冊(cè),查看該用戶是會(huì)員用戶,方可提供點(diǎn)餐服務(wù),連接線程開(kāi)始接收并處理來(lái)自客戶端的SQL語(yǔ)句。連接線程接收到SQL語(yǔ)句之后,將語(yǔ)句交給SQL語(yǔ)句解析模塊進(jìn)行語(yǔ)法分析和語(yǔ)義分析。

3、步驟三檢查緩存
如果是查詢語(yǔ)句,則可以先看查詢緩存中是否有結(jié)果,如果有結(jié)果可以直接返回給客戶端。

4、步驟四檢查引擎優(yōu)化
如果查詢緩存中沒(méi)有結(jié)果,就需要真的查詢數(shù)據(jù)庫(kù)引擎層了,于是發(fā)給SQL優(yōu)化器,進(jìn)行查詢的優(yōu)化。就是請(qǐng)求數(shù)據(jù)庫(kù)引擎層,打開(kāi)表,接下來(lái)的處理過(guò)程就到了數(shù)據(jù)庫(kù)引擎層,例如InnoDB。

5、步驟五,數(shù)據(jù)讀取方式
在數(shù)據(jù)庫(kù)引擎層,要先查詢緩存是否有數(shù)據(jù),如果有直接返回,如果沒(méi)有就要從磁盤上去讀取,把磁盤中找到相應(yīng)的數(shù)據(jù)加載到緩存中,下次讀取直接從緩存讀取從而使得后面的查詢更加高效。

6、步驟六,關(guān)閉連接
獲取數(shù)據(jù)后返回給客戶端,關(guān)閉連接,釋放連接線程,過(guò)程結(jié)束。

性能問(wèn)題分析:
如果語(yǔ)法寫的有問(wèn)題,則在從磁盤撈取數(shù)據(jù)時(shí)會(huì)出現(xiàn)磁盤IO高或者CPU高,那就是語(yǔ)法寫法問(wèn)題或者索引使用問(wèn)題,如果語(yǔ)法分析沒(méi)問(wèn)題,則看緩存頁(yè)配置是否太小了,或者本身物理內(nèi)存就小,給緩存的空間就少了。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI