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

網(wǎng)友評(píng)論