一、關(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

網(wǎng)友評論