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