記錄一下在select過程中呼叫到的一系列函式,以後重點看,尤其是優化部分!!!
在將sql語句解析後,以連線的順序形成乙個查詢基表的佇列,。
對select語句的處理有兩種方式:
一種是帶union的操作
一種是單獨的select語句
所有select操作的入口函式為:
handle_select
——mysql_union() //含有union操作優化:select_lex_unit:prepare()
select_lex_unit:exec()
select_lex_unit:cleanup()
——mysql_select() //僅包含select操作
join:prepare() //準備
join:optimize() //優化
join:exec() //執行
join:cleanup() //清理
1.simplify_joins():外連線轉化為內連線,將節點on_expr合併到where中
2.optimize_cond():優化條件語句
3.make_join_statistics:收集統計資訊
select系統呼叫
select 系統呼叫 select系統呼叫是用來監視多個檔案控制代碼的狀態的。程式會停在select這裡等待,直到被監視的檔案控制代碼有某乙個或多個發生了狀態改變,或者到了超時時間。具體的select系統呼叫的引數可以看看man手冊裡面的說明,這裡我們用乙個使用者空間的事例來解釋說明一下這個系統呼...
select系統呼叫
1 include select.h 2int select int maxfdps,fd set readset,fd set writeset,fd set exceptset,struct timeval timeout maxfdps 被監聽的檔案描述符 fd 的數量 readset 結構指...
系統呼叫 非阻塞處理 select函式
select函式 功能 針對於socket,pipe管道檔案等特殊檔案的非阻塞處理方式 int select int nfds,fd set readfds,fd set writefds,fd set exceptfds,struct timeval timeout nfds 開啟檔案描述符中最大...