mysql的查詢原理 mysql的查詢語句原理

2021-10-22 09:57:29 字數 889 閱讀 1258

mysqld 的程式結構

1.連線層

1)檢驗使用者的合法性

2)提供兩種連線方式

a)tcp/ip

[root@db02 ~]# mysql -uroot -p123 -h10.0.0.51

[root@db01 ~]# mysql -uroot -p123 -h127.0.0.1

b)socket

[root@db01 ~]# mysql -uroot -p123 -s /usr/local/mysql/tmp/mysql.sock

[root@db01 ~]# mysql -uroot -p123 -hlocalhost

[root@db01 ~]# mysql -uroot -p123

3)建立乙個與sql層互動的執行緒

2.sql層

1)接收連線層傳來的sql語句

2)檢查語法

3)檢查語義(檢查它屬於哪種sql語句:ddl,dml,dcl,dql)

4)解析器:解析sql語句,生成多種執行計畫

5)優化器:接收解析器傳來的多種執行計畫,選擇最優化的一條方式去執行

6)執行器:執行優化器傳來的最優方式的sql語句

a)建立乙個與儲存引擎層互動的執行緒

b)接收儲存引擎層,返回的結構化成表的資料

7)寫快取

8)記錄日誌

3.儲存引擎層

1)接收sql層傳來的sql語句

2)與磁碟互動,找到資料並結構化成表的形式,返回給sql層

3)建立乙個與sql層互動的執行緒

三.什麼是例項?

1.mysql的後台程序+執行緒+預分配的記憶體結構。

2.mysql在啟動的過程中會啟動後台守護程序,並生成工作執行緒,預分配記憶體結構供mysql處理資料使用。

mysql關聯查詢原理

當前mysql執行執行的策略很簡單 mysql對任何關聯都執行巢狀迴圈操作,即mysql先在乙個表中迴圈取出單條資料,然後再巢狀迴圈 到下乙個表中尋打匹配的行,依次下去,直到描述到所表表中匹配的行為止。然後根據各個表匹配的行,返回查詢中需要的各個列。mysql會嘗試在最後乙個關聯表中打到所有匹配的行...

mysql查詢和快取原理

mysql資料庫查詢步驟和快取原理 我們曉得,資料庫的查詢功能是我們經常用到的,那麼mysql資料庫是如何進行查詢的呢?本文我們就來引見一下mysql資料庫的查詢步調以及快取本理,接下來就讓我們來一路領會一下那一部門內容。當mysql收到客戶端傳送的查詢語句時,起首會查抄快取塊外能否快取外此語句的成...

MySQL索引原理及查詢優化

其實在工作中有去優化mysql語句,但之前優化僅僅是降到能夠接受花費時間之下,並有很多可以繼續提供的空間。很多時候在優化完成之後sql,也並不能向外展示。故這裡將自己平時優化的sql方法記錄下來,並找到乙個總結優化sql的地方。索引原理 mysql的建立索引其實就像是字典的目錄有一定的相似之處,通過...