數據庫查詢語句內部執行過程
select * from table
步驟
分析階段(parse)
1、共享池庫高速緩存有沒有該語句。如果有直接返回結果。
2、語法分析sql語句是否正確進行下一步分析。
3、檢查表是否存在。(對象解析,查找數據字典表)
4、翻譯*成為所有字段。檢查字段是否正確。
5、獲得對象解析鎖,表結構鎖住,防止其他用戶對表結構進行改變。
6、檢查用戶權限夠不夠。
7、由計劃器產生執行計劃放到庫高速緩存區裡(二進制執行代碼)。
執行階段(execute)
1、看數據庫高速緩沖區是否存在,如果存在則提取。
2、如果不存在則從數據文件中讀到數據緩沖區中。
提取階段(fetch)
1、從數據庫緩沖區高速緩存中讀取數據給用戶。
from:eesama