mysql 表 區 塊 頁 mysql的伺服器構成

2021-10-20 22:35:13 字數 1349 閱讀 7830

什麼是例項

這裡的例項不是類產生的例項物件,而是linux系統下的一種機制

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

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

mysql三層構成

連線層1.提供鏈結協議(socket,tcp/ip) #這裡的socket也不是網路連線的socket,mysql的socket連線只能連線本地

2.驗證使用者的合法性(使用者名稱,密碼,白名單)

3.提供乙個專用連線線程(接收sql,返回結果,將sql語句交給sql層繼續處理)

sql層

1.接收到sql語句,語法判斷

2.判斷語義(判斷語句型別:dml,ddl,dcl,dql)

3.解析sql語句,生成多種執行計畫

4.優化器,選擇它認為成本最低的執行計畫(通俗講就是選擇速度快,消耗低的sql語句型別)

5.執行器根據優化器的選擇,按照優化器建議執行sql語句,得到去哪兒找sql語句需要訪問的資料

5.1.具體:在哪個資料檔案上的哪個資料頁中

5.2.將以上結果充送給下層繼續處理

6.接收儲存引擎層的資料,結構化成表的形式,通過連線層提供的專用線程

7.提供查詢快取

7.1.query_cache使用memcached或redis代替

8.日誌記錄(binlog)

儲存引擎層

1.接收上層的執行結果

2.取出磁碟檔案和相應資料

3.返回給sql層,結構化之後生成**,由專用線程返回給客戶端

msql的邏輯結構

mysql的邏輯物件:做為管理人員或者開發人員操作的物件

1.庫2.表:元資料+真實資料行

3.元資料:列+其他屬性(行數+占用空間大小+許可權)

4.列:列名字+資料型別+其他約束(非空,唯一,主鍵,非負數,自增長,預設值)

最直觀的資料:二維表,必須用庫來存放

mysql邏輯結構與linux系統對比

mysql的物理結構

1)mysql的最底層的物理結構是資料檔案,也就是說,儲存引擎層,打交道的檔案,是資料檔案。

2)儲存引擎分為很多種類(linux中的fs)

3)不同儲存引擎的區別:儲存方式、安全性、效能

段、區、頁(塊)

2、區:連續的多個頁構成

3、頁:最小的資料儲存單元,預設是16k

mysql 表 區 塊 頁 MySQL表

索引組織表 索引組織表 在innodb儲存引擎中,表都是根據主鍵順序組織存放的,每個表都是有主鍵 rowid可以顯示表的主鍵,只能夠檢視單個列為主鍵的情況,並且為非空唯一索引。innodb邏輯儲存結構 表空間 tablespace 端 segment 區 extent 頁 page 塊 block ...

mysql 檢視 髒頁 MySQL 刷髒頁

1.髒頁,乾淨頁 當記憶體資料頁和磁碟資料頁上的內容不一致時,我們稱這個記憶體頁為髒頁 記憶體資料寫入磁碟後,記憶體頁上的資料和磁碟頁上的資料就一致了,我們稱這個記憶體頁為乾淨頁。2.刷髒頁的時機 2.1 redo log redo log 是迴圈寫的,當redo log 寫滿了,即 write p...

mysql 頁 MySQL資料結構 頁結構

innodb設計了多種頁結構用於存放不同型別的資料,我們現在主要研究存放資料的頁,稱為索引頁或資料頁。每個頁由七部分組成,大致功能如下 fileheader 檔案頭 記錄頁的通用資訊,比如上下頁的頁號,頁型別,所有的資料頁其實是乙個雙鏈表 pageheader 頁頭 記錄本頁儲存記錄的狀態資訊,比如...