1. 程式人生 > >MySQL 架構與歷史

MySQL 架構與歷史

table 版本 時間 rom 解析 between ans 采集 結果

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 架構與歷史