1.存储引擎是:MySQL特有的,其他数据库没有
2.存储引擎的本质
a.通过采用不同的技术将数据存储在文件或内存中;
b.每一种技术都有不同的存储机制,不同的存储机制提供不同的功能和能力;
c.通过选择不同的技术,可以获得额外的速度或功能,改善我们的应用
3.MySQL支持很多种,查看存储引擎,命令如下
3.1 show engines\G(查看MySQL所有的存储引擎 共9种)
3.2 show create table tablename;(查看具体某一个表所使用的存储引擎)
这里默认的是InnoDB
4.最常见的3种搜索引擎
4.1 MEMORY存储引擎
1.使用MEMORY存储引擎的表,因为数据存储在内存中,且行的长度固定,所以使得MEMORY存储引擎非常快
2.MEMORY存储引擎管理的表具有下列特征
a.在数据目录内,每个表均以.frm格式文件表示
b.表数据及索引被存储在内存中(查询速率非常快,存储速率也非常快但数据不是永久的 当服务器关停后 数据就会丢失)
c.表级锁机制
d.字段属性不能包含TEXT(文本)或BLOB(二进制)字段(存储的字段非常大)
3.MEMORY存储引擎以前被称为HEAP引擎
4.2 InnoDB存储引擎(MySQL数据库默认的存储引擎)
它管理的表具体有以下特征
a.每个InnoDB表在数据库目录中以.frm格式文件表示
b.InnoDB表空间tablespace被用于存储表的内容
c.提供一组用来记录事务性活动的日志文件
d.用COMMIT(提交), SAVEPOINT及ROLLBACK(回滚)支持事务处理
e.提供全部ACID兼容
f.在MySQL服务器崩溃后提供自动恢复
g.多版本(MVCC)和行级锁定
h.支持外键及引用的完整性,包括级联更新和删除
4.3 MyISAM存储引擎
MyISAM是MySQL数据库最常见的
它管理的表具有以下特性
1.使用三个文件表示每个表:
a.格式文件——存储表的结构(mytable.frm)
b.数据文件——存储表的数据(mytable.MYD)
c.索引文件——存储表的索引(mytable.MYI)
2.可转换为压缩(可转换成压缩只读表),只读表来节省空间(因为数据库的空间很宝贵)
5.选择适合的存储引擎
1.MyISAM表最适合于大量的数据读而少量数据更新的混合操作,MyISAM表的另一种适合情形是使用压缩的只读表。
2.如果查询中包含较多的数据更新操作,应使用InnoDB,其行级锁机制和多版本的支持为数据读取和更新的混合提供了良好的并发机制。
3.使用MEMORY存储引擎存储非永久需要的数据(在内存中放入的数据),或者是能够从基于磁盘的表中重新生成的数据。