MySQL的存儲引擎

MySQL的存儲引擎:數據庫

Innodb引擎(MySQL5.6默認的存儲引擎)服務器

特色:
	1)支持事務、支持崩潰修復。
	2)支持行級鎖,寫操做不會鎖定全表,故在高併發的狀況下,使用Innodb引擎會提高效率。
		注意:InnoDB的行級鎖是經過在索引上加鎖來實現的,因此只有經過明確的索引來查找數據時纔會使用行級鎖。
	3)支持外鍵
	4)MySQL5.6以前不支持全文索引(FULLTEXT),MySQL5.6後支持全文索引。
	5)支持自動增加列,此列必須爲主鍵,值必須惟一且不能爲空。
		注意:insert時,若將主鍵set爲0或NULL,則保存這條數據時,主鍵的值會自動設置爲自增後的值。
	6)沒有存儲表的行數,SELECT COUNT(*) FROM TABLE 時須要掃描全表。
	
	7)會在內存中創建緩衝池,用於緩衝數據和索引。
	
	針對數據庫中高併發的寫(從庫不必定能及時追的上),建議經過多實例分庫分表架構來解決。
		
缺點:讀寫效率與MyIASM比相對較差,佔用的磁盤空間比較大。

應用:
	1)須要使用事務的表。
	2)對自動災難恢復有要求的表。
	3)高併發,更新操做比較多的表。

MyIASM引擎:架構

特色:
	1)鎖的粒度是表級別的,不支持行級鎖,故寫操做(insert、update)須要鎖定整個表。
	2)不支持事務
	3)不支持外鍵
	4)支持全文索引
	5)MyIASM表保存成文件形式,跨平臺使用比較方便。
	6)存儲了表的行數,SELECT COUNT(*) FROM TABLE 時能夠直接讀取已存儲的值而不須要進行全表掃描。
	
	
應用:
	表的讀操做遠遠多於寫操做而且不須要數據庫事務的支持。

Memory引擎:併發

特色:
	數據存放在內存上,一旦服務器關機,數據將再也不存在
	訪問速度快
	索引類型支持哈希索引、BTree索引。

應用:要求快速訪問的臨時數據,而且容許數據的丟失。

CSV(Comma-Separated Values)引擎:高併發

特色:以csv文件的形式來存儲數據。

others:code

# 查看數據庫的版本,eg:5.6.33-log
select version();

# 查看MySQL所支持的存儲引擎
show engines;

# 查看MySQL默認的存儲引擎
show variables like "%storage_engine%";

# 查看數據庫的data目錄
show variables like "datadir";

# 查看數據庫當前鏈接進程的信息
show processlist;

# 查看數據庫事務的隔離級別,MySQL默認爲:REPEATABLE-READ
select @@tx_isolation

# 查看自動提交是否開啓(1表示開啓,0表示關閉,默認開啓)
select @@autocommit
相關文章
相關標籤/搜索