zoukankan      html  css  js  c++  java
  • MySQL中的存储引擎

    MySQL中常用的三种存储引擎分别是: MyISAM存储引擎、innoDB存储引擎、MEMORY存储引擎。本文将对这三种存储引擎作出重点介绍,最后比较它们的使用场景。

    存储引擎的使用

    • 数据库中的各表(在创建表时)指定的存储引擎来处理
    • 服务器可用的引擎依赖于以下因素
      • MySQL 版本
      • 服务器在开发时如何被配置
      • 启动选项

    怎么看表用的什么存储引擎。

    MyISAM 存储引擎

    • MyISAM 存储引擎是 MySQL 最常用的引擎
    • 它管理的表具有以下特征
      • 使用三个文件表示表
        • 格式文件 —— 存储表结构的定义(mytable.frm)
        • 数据文件 —— 存储表行的结果(mytable.MYD)
        • 索引文件 —— 存储表上的索引(mytable.MYI)
      • 灵活的 AUTO_INCREMENT 字段处理
      • 可被转换为压缩、只读表来节省空间

    InnoDB

    • InnoDB 存储引擎是 MySQL 默认的存储引擎
    • 它管理的表具有以下特征
      • 每个 InnoDB 表在数据库目录中以 .frm 格式文件表示
      • InnoDB 表空间 tablespace 被用于存储表的内容
      • 提供一组用来记录事务性活动的日志文件
      • 用 COMMIT、SAVEPOINT 及 ROLLBACK 支持事务处理
      • 提供全 ACID 兼容
      • 在 MySQL 服务器崩溃后提供自动恢复
      • 多版本(MVCC)和行级锁定
      • 支持外键及引用的完整性,包括级联删除和更新

    MEMOEY 存储引擎

    • 使用MEMORY存储引擎的表,其数据存储在内存中,且行的长度固定,这两个特点使得MEMORY存储引擎非常快
    • MEMORY 存储引擎具有有以下特征

      • 在数据库目录内,每个表均以.frm格式的文件表示。
      • 表数据及索引被存储在内存中。
      • 表级锁机制。
      • 不能包含TEXT或BLOB字段。
    • MEMORY存储引擎以前被称为HEAP引擎

    选择合适的存储引擎

    当创建表时,应根据表的应用场景选择合适的存储引擎

    • MyISAM 表最适合于大量的数据读而少量数据更新的混合操作。MyISAM 表的另一种适用情形是使用压缩的只读表。
    • 如果查询中包含较的数据更新操作,应使用 InnoDB。其行级锁机制和多版本的支持为数据读取和更新的混合操作提供了良好的并发机制。
    • 使用 MEMORY 存储引擎存储非永久需要的数据,或者是能够从基于磁盘的表中重新生成的数据。
  • 相关阅读:
    从安装、管理到防御_阿里云安骑士全向测评
    云架构师前(钱)景这么好_我们该如何转型?这有两位阿里云云架构总监多年心得
    Infrastructure_as_Code——Kubernetes一键编排实践
    大中华地区(含港澳台)空气质量接口参加阿里云API_as_a_Service_大赛
    E-MapReduce集群启停HDFS/YARN服务
    云服务器ECS还原安全组规则功能介绍_安全组规则的备份与还原
    E-MapReduce集群中HDFS服务集成Kerberos
    FastReport中如何加入自定义函数
    查找算法总结
    八大排序算法总结
  • 原文地址:https://www.cnblogs.com/shuiyj/p/13185188.html
Copyright © 2011-2022 走看看