mysql常见存储引擎

8.4、mysql常见存储引擎

 

   MyISAM存储引擎:

      特征:

        使用三个文件表示每个表:

        格式文件—存储表结构的定义(mytable.frm)

        数据文件—存储表行的内容(mytable.MYD)

        索引文件—存储表上索引(mytable.MYI):索引是一本书的目录,缩小扫描范围,提高查询效率的机制

      优势:可被转换成压缩、只读表来节省空间

      不支持事务,安全性低

      提示:对于一张表,只要是主键,或者加有unique约束的字段上会自动创建索引

        

   InnoDB存储引擎:

      这是mysql默认的存储引擎,也是重量级存储引擎。

      InnoDB支持事务,支持数据库崩溃后自动恢复机制。

      InnoDB存储引擎最主要的特点:安全

      特征:

        每个InnoDB表在数据库目录中以.frm格式文件表示

        InnoDB表空间 tablespace 被用于存储表的内容

        提供一组用来记录事务性活动的日志文件

        用COMMIT(提交)、SAVEPOINT及ROLLBACK(回滚)支持事务处理

        提供全ACID兼容

        在MySQL服务器崩溃后提供自动恢复

        多版本(MVCC)和行级锁定

        支持外键及引用的完整性,包括级联删除和更新

     优点:支持事务:保证数据安全,效率不是很高,并且不能压缩,不能转换成只读,不能很好的节省存储空间

  

   MEMORY存储引擎:

      使用MEMORY存储引擎的表,其数据存储在内存中,且行的长度固定,

      这两个特点使得MEMORY存储引擎非常快

      MEMORY存储引擎管理的表具有特征:

        在数据库目录内,每个表均以.frm格式的文件表示

        表数据及索引被存储在内存中(目的就是快,查询快)

        表级锁机制

        不能包含TEXT或BLOB字段

      MEMORY存储引擎以前被称为HEAP引擎

    优点:查询效率最高,不需要和硬盘交互

    缺点:不安全,关机之后数据消失,因为数据和索引都是在内存中

posted @ 2022-01-23 16:47  doremi429  阅读(38)  评论(0编辑  收藏  举报