一、關(guān)于一個(gè)SQL的簡(jiǎn)單的工作過(guò)程
1、工作前提描述
1、啟動(dòng)MySQL,在內(nèi)存中分配一個(gè)大空間innodb_buffer_pool(其中l(wèi)og_buffer)
2、多用戶(hù)線程連接MySQL,從內(nèi)存分配用戶(hù)工作空間(其中排序空間)
3、磁盤(pán)上有數(shù)據(jù)庫(kù)文件、ib_logfile、tmp目錄、undo
2、SQL的簡(jiǎn)易流程
1、DQL操作
1、首先進(jìn)行內(nèi)存讀
2、如果buffer pool中沒(méi)有所需數(shù)據(jù),就進(jìn)行物理讀
3、物理讀數(shù)據(jù)讀入buffer pool,再返回給用戶(hù)工作空間
2、DML操作(例update)
1、內(nèi)存讀,然后進(jìn)行物理讀,讀取所需修改的數(shù)據(jù)行
2、從磁盤(pán)調(diào)入undo頁(yè)到buffer pool中
3、修改前的數(shù)據(jù)存入undo頁(yè)里,產(chǎn)生redo
4、修改數(shù)據(jù)行(buffer pool中數(shù)據(jù)頁(yè)成臟頁(yè)),產(chǎn)生redo