存储引擎:
存储引擎是基于表结构的,在创建表的时候进行创建,而不是基于数据库的
MySQL体系结构
连接层
主要完成一些类似于连接处理、授权认证、及相关的安全方案
服务层
主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行
引擎层
存储引擎真正的负责了MySQL中数据的存储和提取
存储层
主要是将数据存储在文件系统之上,并完成与存储引擎的交互。
常见存储引擎的分类与设置
InnoDB:
续MySQL5.5之后,默认的存储引擎
MyISAM:
最早的存储引擎
Memory:
内存存储引擎,
存储引擎的设置:
创建表的时候,创建存储引擎
create * from 表名(
....
....
) ENGINE = 存储引擎;
查看指定表的存储引擎
SHOW TABLE STATUS LIKE '表名'
存储引擎的特点
InnoDB:
支持外键,支持索引,支持行级锁,高可靠性和高性能
MyISAM:
不支持事务,不支持外键,不支持行级锁,支持表锁,访问速度快
Memory:
因为存储在内存中,所以写入和取出的速度快,但是受外界影响(断电等因素),只用于临时表和缓存使用
存储引擎的选择
InnoDB存储引擎
在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操作,那么InnoDB存储引擎是比较合适的选择。
MyISAM存储引擎
如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不是很高,那么选择这个存储引擎是非常合适的。
Memory存储引擎
将所有数据保存在内存中,访问速度快,通常用于临时表及缓存。MEMORY的缺陷就是对表的大小有限制,太大的表无法缓存在内存中,而且无法保障数据的安全性。