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