一.InnoDB
1.mysql5.5之后的默认存储引擎
2.支持事务
3.行锁
4.外键约束
5.索引
6.实现MVCC(Multi-Version Concurrency Control多版本并发控制)
7.支持四种隔离等级(未提交读(Read uncommitted),已提交读(Read committed),已提交读(Read committed),已提交读(Read committed))
8.创建的表存储结构是.frm 分为结构文件和数据索引文件
二.MyISAM
1.mysql5.5之前的默认存储引擎
2.表锁
3.索引(包括全文索引)
4.创建的表存储结构是.frm文件保存表的定义 .MYD保存表的数据;.MYI是表的索引文件
三.Memory
1.表数据存放在内存
2.支持索引(不支持全文索引)
3.表锁
四.ARCHIVE(归档)
1.允许插入和查询,不允许修改和删除。相当于拥有只读权限和写入权限,没有修改权限和删除权限
2.以zlib对表数据进行压缩,磁盘I/O更少
3.数据存储在ARZ为后缀的文件中
4.较小的空间占用也能在你移植MySQL数据的时候发挥作用。当你需要把数据从一台MySQL服务器转移到另一台的时候,Archive表可以方便地移植到新的MySQL环境,你只需将保存Archive表的底层文件复制过去就可以了
5.适合大数据存储
五.Merge
1.允许你把许多结构相同的表合并为一个表
2.基本表类型必须是MyISAM的
3.多用来进行分区
六.CSV
CSV引擎有点类似Oracle的外部表。它可以将“逗号分隔值(CSV)文件”作为表进行处理,但不支持在这种文件上建立相关索引。在服务器运行中,这种引擎支持从数据库中拷入/拷出CSV文件。如果从电子表格软件输出一个CSV文件,将其存放在MySQL服务器的数据目录中,服务器就能够马上读取相关的CSV文件。同样,如果写数据库到一个CSV表,外部程序也可以立刻读取它。在实现某种类型的日志记录时,CSV表作为一种数据交换格式,特别有用
七.BLACKHOLE
1.支持所有类型的索引
2.表不存储数据,如果复制基于SBR,语句可以记录并在从库执行;如果复制为RBR、MBR,UPDATE及DELETE操作将会跳过,不会记录也从库不执行
3.Insert触发器可以正常使用,Update、Delete触发器因为不存储数据不能触发,FOR EACH ROW 也不能触发
4.可能被用来查找与存储引擎自身不相关的性能瓶颈
5.可用在主从配置中(具体的百度)
八.FEDERDATED
FEDERATED存储引擎访问在远程数据库的表中的数据,而不是本地的表。这个特性给某些开发应用带来了便利,你可以直接在本地构建一个federated表来连接远程数据表,配置好了之后本地表的数据可以直接跟远程数据表同步。实际上这个引擎里面是不真实存放数据的,所需要的数据都是连接到其他MySQL服务器上
1.对本地虚拟表的结构修改,并不会修改远程表的结构
2.truncate 命令,会清除远程表数据
3.drop命令只会删除虚拟表,并不会删除远程表
4.不支持 alter table 命令
九.NDB (NDB Cluster分布式存储引擎)
主要用于MySQL Cluster 分布式集群环境 参考(或者百度用法)
网友评论