Mysql如今是大多數公司企業在用的數據庫,之因此用Mysql,一點是由於Mysql是開源軟件,一些有能力的公司會基於已有的Mysql架構,進行修改、調整改爲適合本身公司的業務須要。mysql
一點是由於Mysql免費,相對昂貴的Oracle服務,對於不少剛起步的公司來講,是最適合不過的數據庫了。sql
之因此要認識Mysql的邏輯架構,就比如咱們本身在作開發時,首先須要先掌握本身系統用的分層架構,這樣在開發的過程當中,若是有哪一個環節產生問題,就很好排查。認識Mysql的邏輯數據庫
架構也同理,咱們在用Mysql的時候,咱們不清楚它何時會出現問題,可是當出現問題時(好比優化查詢sql,要從哪一步開始),咱們能夠更清楚的定位問題。編程
平時涉及到存儲引擎的選型,主要針對業務的須要來選擇,能夠參考各自的特色。緩存
存儲引擎的選型:
InnoDB:支持事務處理,支持外鍵,支持崩潰修復能力和併發控制。若是須要對事務的完整性要求比
較高(好比銀行),要求實現併發控制(好比售票),那選擇InnoDB有很大的優點。若是須要頻繁的
更新、刪除操做的數據庫,也能夠選擇InnoDB,由於支持事務的提交(commit)和回滾
(rollback)。
MyISAM:插入數據快,空間和內存使用比較低。若是表主要是用於插入新記錄和讀出記錄,那麼選擇
MyISAM能實現處理高效率。若是應用的完整性、併發性要求比 較低,也能夠使用。
MEMORY:全部的數據都在內存中,數據的處理速度快,可是安全性不高。若是須要很快的讀寫速度,
對數據的安全性要求較低,不須要持久保存,能夠選擇MEMOEY。它對錶的大小有要求,不能創建太大
的表。因此,這類數據庫只使用在相對較小的數據庫表。
安全
這裏有一張MYSQL的簡單執行流程圖,憑靠這張圖對MYSQL總體的一個執行流程會有清晰的認識。架構
MYSQL的邏輯架構就介紹到這裏。固然MYSQL還有對應的物理架構,不過這一塊主要涉及到MYSQL的各個日誌文件,以及各個表的併發
數據文件以及索引文件,在後面的章節再作介紹。編程語言