MySQL 架構與歷史
1、MySQL 邏輯架構,上層客戶端-----》連接/線程處理------》解析器-----》優化器 -----》存儲引擎,解析器如果有生成查詢緩存,那麽連接/線程處理也有可能直接到查詢緩存,返回結果,圖如下
2、並發控制,讀寫鎖,共享鎖,排他鎖,鎖粒度(表鎖 table lock 行級鎖 row lock)
3、事務 :原子性,一致性,隔離性,持久性
隔離級別:未提交度,提交讀(不可重復讀),可重復讀 ,可串行化
死鎖
MySQL 中的事務
4、多版本並發控制(MVCC),只在REPEATABLE READ 和 READ COMMIT下工作,原理就是每行記錄後面加兩個隱藏的列來實現,一個保存行的創建時間,一個保存行的過期時間;這個時間是指系統版本號;
4、MySQL存儲引擎 InnoDB MyISAM archive(只支持isert和select操作,日誌或者數據采集類) CSV fedetated引擎 Memory引擎(HEAP表)臨時表局勢memory引擎,場景
NDB集群引擎
第三方存儲引擎(OLTP類引擎,XtrDB PBXT TokuDB)
面向列的存儲引擎 infobright,大數據量
如何轉換表引擎?
1、ALTER TABLE 慢,會消耗系統所有的I/O能力
2、導入與導出
3、創建與查詢
create table innodb_table like myisam_table;
alter table innodb_table engine = innodb;
insert into innodb_table select * from myisam_table;
數據量大的話,可以分批使用
start transaction;
insert into innodb_table select * from myisam_table where id between x and y;
commit;
MySQL 架構與歷史