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...