美文网首页
mysql存储引擎(基本)

mysql存储引擎(基本)

作者: 其实都没有_8881 | 来源:发表于2019-05-06 17:46 被阅读0次

    一.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存储引擎(基本)

          本文链接:https://www.haomeiwen.com/subject/gcxdoqtx.html