一、存储引擎简介
存储引擎是:MySQL特有的,其它数据库没有
二、存储引擎的本质
通过采用不同的技术将数据存储在文件或内存中;
每一种技术都有不同的存储机制,不同的存储机制提供不同的功能和能力;
通过选择不同的技术,可以获得额外的速度或功能,改善我们的应用;
三、mysql语句
MySQL支持很多种,查看存储引擎,命令如下:
show engines\G
在创建表时,可使用< ENGINES> 选项为CREATE TABLE语句显示指定存储
如果创建表时没有指定存储引擎,则使用当前默认的存储引擎
默认的存储引擎可在 my.ini 配置文件中使用 default-storage-engin 选项指 定
修改表的存储引擎使用:
ALTER TABLE 表名 ENGINE = 存储引擎名称
查看表使用的存储引擎,命令如下:
SHOW CREATE TABLE emp\G;
SHOW TABLE STATUS LIKE ‘emp’\G;
四、常用的存储引擎
MyISAM存储引擎
MyISAM引擎是MySQL数据库最常用的; 它管理的表具有以下特性:
使用三个文件表示每个表:
a) 格式文件 — 存储表的结构(mytable.frm)
b) 数据文件 — 存储表的数据(mytable.MYD)
c) 索引文件 — 存储表的索引(mytable.MYI)
可转换为压缩、只读表来节省空间
InnoDB存储引擎
它管理的表具体有以下特征:
a) 每个InnoDB表在数据库目录中以.frm格式文件表示
b) InnoDB表空间tablespace被用于存储表的内容
c) 提供一组用来记录事务性活动的日志文件
d) 用COMMIT(提交)、SAVEPOINT及ROLLBACK(回滚)支持事务 处理
e) 提供全部ACID兼容
f) 在MySQL服务器崩溃后提供自动恢复
g) 多版本(MVCC)和行级锁定
h) 支持外键及引用的完整性,包括级联更新和删除
MEMORY存储引擎
使用MEMORY存储引擎的表,因为数据存储在内存中,且行的长度固定,所以 使得MEMORY存储引擎非常快;
MEMORY存储引擎管理的表具有下列特征:
a) 在数据库目录内,每个表均以.frm格式文件表示;
b) 表数据及索引被存储在内存中;
c) 表级锁机制;
d) 字段属性不能包含TEXT或BLOB字段;
MEMORY存储引擎以前被称为HEAP引擎;