mysql理論知識 MySQL資料庫理論知識

2021-10-22 09:26:53 字數 1558 閱讀 7594

1、mysql連線方式

1、tcp/ip

需要三次握手建立連線

mysql -uroot -p123 -h10.0.0.51

mysql -uroot -p123 -h127.0.0.1

2、socket

mysql預設使用socket連線;socket預設路徑/tmp/mysql.sock,可以通過編譯引數更改;-s指定socket檔案路徑

mysql -uroot -p123

mysql -uroot -p123 -hlocalhost

2、mysql例項

什麼是例項:mysql的後台程序+多個執行緒+預分配的記憶體結構

mysql在啟動後就分配好記憶體結構,一次性的申請一段系統記憶體,等待被使用。和windows啟動程式後才占用記憶體不同。

3、mysqld的程式結構

mysql啟動過程中,啟動了乙個守護程序(mysqld),並生成了許多執行緒

預分配記憶體結構供mysql處理資料使用

執行緒是幹活的,程序是分配執行緒的

mysqld 是乙個守護程序,但本身不能自主啟動

由mysqld這個主程序來派生出子執行緒,負責所有協調的工作,讓子執行緒進行工作

連線層1.驗證使用者的合法性(使用者名稱,密碼,主機域)

2.提供了兩種連線方式(tcp/ip socket)

3.建立乙個與sql層連線的執行緒

sql層

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

2.檢測語法

3.檢測語義(ddl,dml,dql,dcl),檢測是show還是select?還是update?還是insert?

4.解析器,解析整條sql語句,生成多種執行計畫

5.優化器,選擇解析器生成的多種執行計畫中,效率最高的一種

6.執行器,將優化器,優化的最優的一種執行方式,執行

和儲存引擎層建立連線(提供乙個執行緒)

接收儲存引擎層傳來的結構化成表的資料

7.寫快取

8.記錄日誌(binlog)

儲存引擎層

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

2.與磁碟互動,讀取資料並結構化成表,返回給sql層

3.建立乙個與sql層連線的執行緒

4、mysql的結構

1.邏輯結構

資料庫管理員,操作的物件

庫表:(真實資料+元資料)

元資料:列+其他屬性(大小,行數...)

列:列名+(資料型別+約束(非空,預設值,主鍵,非負...))

2.物理結構

mysql的物理結構,是最底層的資料檔案;

檔案目錄是mysql/data

在data目錄下新建目錄相當於建立了庫,但是要注意linux系統區分大小寫,資料庫不區分。為了避免發生問題,所以要求開發建庫建表統一使用小寫字母

5、mysql單位

段:是由多個區組成的,一張表就是乙個段

區:是由64個頁組成的,乙個區:1m=1024k

頁(塊):16k為一頁

分割槽表:是由乙個區構成的乙個表(段)。

只要我有,從搭建資料庫開始到現在,所有的binlog日誌,那麼我可以將mysql的資料恢復到任意時刻.

mysql多表查詢理論知識

複製表 複製表 將源表 複製為新錶 yyy create table yyy select from 將指定的查詢結果複製為新錶 zzz create table zzz sql 查詢語句 複製表 續 1 複製源表 的結構到新錶 vvv create table vvv select from wh...

數倉理論知識

為什麼分層 1 清洗資料結構 每乙個資料分層都哦於他的作用域和職責,在使用表的時候能更方便定位和理解 2 統一開發 減少重複開發 規範資料分層,開發一些通用的中間層資料,能夠減少極大的重複計算 3 統一資料口徑 通過資料分層,提供統一的資料出口,統一對外輸出的資料口徑 4 複雜問題簡單化 將乙個複雜...

web services理論知識

web服務作為一種能夠快速整合應用的技術,如果與非同步傳輸進行組合,就將為構建企業級應用提供所需的可靠性。在本文中,我們嘗試用兩種設計方法來部署和訪問非同步web服務 通過使用 apache axis 在第一種方法中,用websphere mq support pac ma0r來提供mq傳輸 利用w...