第一次接觸分層思想是在學習網路的時候,osi7層模型,各層完成自己的任務互相不干擾。
在mysql中也採用用這種思想,這麼做的好處就是規定了各層的功能那個,出現什麼問題就去找各層的問題。大大減少了工作量。
那麼在mysql中大概分為四層:
1、鏈結層 2、服務層 3、儲存引擎層 4、儲存層
一、鏈路層
主要功能是提供與客服端的鏈結服務,包含本地的sock通訊和大多數基於客戶端/服務端工具實現的類似tcp/ip的通訊。主要完成一些類似於連線處理、授權認證、以及相關的安全方案。在改層引入了執行緒池的概率,為通過認證安全接入的客戶端提供執行緒。同樣在該層上可以實現基於ssl的安全連線、伺服器也會為安全接入的每個客戶端驗證它所具有的操作許可權。
二、服務層
提供各種使用者使用的介面,如查詢語句等
內建了sql優化器(mysql query optimizer)。 sql優化器是mysql服務層自帶的乙個服務,它會自動優化使用者寫得不是最優的sql,使其達到優化的效果。但由於優化器畢竟只是優化器,有時候會將使用者自定義的優化方案給更改掉,從而使使用者自己的優化方案失效,這一點需要注意(也許你的sql是這麼寫的但是實際執行不一定是這麼執行的)
三、儲存引擎層
主要提供儲存引擎,常用的儲存引擎有innodb與mysiam,一般現在預設是innodb(區別後面會寫到)
四、儲存層
資料儲存層,主要講資料儲存在執行裸裝置的檔案系統上,並完成與儲存引擎的互動
Mysql分層邏輯架構
mysql是乙個開源的關係型資料庫產品,採用處理與儲存分離的設計,靈活性高,這些年已成為網際網路應用上常用的關係型資料庫。網際網路系統特點是高併發,大資料量,一般瓶頸最終還是會落到資料庫,所以優化mysql是必不可少的。優化前我們要對mysql服務內部的邏輯結構有一定了解,有助於我們對優化的深入學習...
mysql 的開發規範 MySQL開發規範
一 基礎規範 1 使用innodb儲存引擎 2 資料庫字符集使用utf8,校對字符集使用utf8 general ci 3 所有表 欄位都盡量新增注釋 4 庫名 表名 欄位名使用小寫字母,禁止超過32個字元,須見名知意 5 非唯一索引以 idx 欄位1 欄位2 命名,唯一索引必須以 uniq 欄位1...
分層開發一 軟體系統的分層開發
三層架構圖 三層引入 ui層 表示層 負責展示頁面或者窗體的內容 bll層 業務邏輯層 處理業務邏輯,只是起到了乙個隔離的作用 dal層 資料訪問層 和資料打交道,從資料中獲取或者修改資料 model層 實體層 再程式設計中如何實際利用三層架構完成程式設計 解析 1 搭建三層架構,每個人的習慣都不同...