一.存儲引擎概述
個人理解:存儲引擎中定義了很多種方法,來對存儲中的數據,索引和其他內容進行控制。不同存儲引擎存儲這些數據的方式是不同的。
查看已安裝MySQL存儲引擎:
//以任意數據表爲例,如數據庫mysql中的user表爲例:
use mysql;
show table status like 'user' \G
查詢的信息像是這樣:存儲引擎爲(Engine:MyISAM)
*************************** 1. row ***************************
Name: user
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 5
Avg_row_length: 113
Data_length: 568
Max_data_length: 281474976710655
Index_length: 4096
Data_free: 0
Auto_increment: NULL
Create_time: 2015-11-06 23:13:16
Update_time: 2019-10-18 20:57:56
Check_time: 2019-10-27 14:24:49
Collation: utf8_bin
Checksum: NULL
Create_options:
Comment: Users and global privileges
1 row in set (0.00 sec)
二.常用存儲引擎
MySQL不同於其他數據庫,它的存儲引擎是“可插拔”的,就是MySQL Server的核心基礎代碼和存儲引擎是分離的,可以根據個人的選擇選擇合適的引擎,也就是說MySQL支持不同的表使用不同的引擎。MySQL擁有20多個引擎,下面爲常用的幾個引擎:
1.InnoDB引擎
InnoDB支持事務,其設計目標主要面向在線事務處理(OLTP)應用。
特點:支持事務,行鎖設計,支持外鍵;MySQL 5.5.8之後默認存儲引擎;
2.MyISAM引擎
支持全文索引,主要面向一些OLAP數據庫應用。
特點:不支持事務,表鎖設計,支持全文索引;MySQL 5.5.8之前默認存儲引擎;
3.ARCHIVE引擎
特點:只支持INSERT和SELECT操作,從MySQL 5.1開始支持索引;