mysql存储引擎(基本)

一.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 分布式集群环境 参考(或者百度用法)

你可能感兴趣的:(mysql存储引擎(基本))