zoukankan      html  css  js  c++  java
  • Mysql三天入门(三)存储引擎

    存储引擎的使用

    • 数据库中的各表均被(在创建表时)指定的存储引擎来处理。
    • 服务器可用的引擎依赖于以下因素:
      • MySQL的版本
      • 服务器在开发时如何被配置
      • 启动选项
    • 为了解当前服务器中有哪些存储引擎可用,可使用SHOW ENGINES语句:
      • mysql> SHOW ENGINESG
    • 在创建表时,可使用ENGINE选项为CREATE TABLE语句显式指定存储引擎
      • CREATE TABLE TABLENAME (NO INT) ENGINE = MyISAM;
    • 默认的存储引擎可在my.ini配置文件中使用default-storage-engine选项指定
    • 现有表的存储引擎可使用ALTER TABLE语句来改变:ALTER TABLE TABLENAME ENGINE = INNODB
    • 为确定某表所使用的存储引擎,可以使用SHOW CREATE TABLE或SHOW TABLE STATUS语句:
      • mysql> SHOW CREATE TABLE empG
      • mysql> SHOW TABLE STATUS LIKE 'emp' G

    常用的存储引擎

    MyISAM存储引擎

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

    InnoDB存储引擎

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

    MEMORY存储引擎

    • 使用MEMORY存储引擎的表,其数据存储在内存中,且行的长度固定,这两个特点使得MEMORY存储引擎非常快。
    • MEMORY存储引擎管理的表具有下列特征:
      • 在数据库目录内,每个表均以.frm格式的文件表示。
      • 表数据及索引被存储在内存中。
      • 表级锁机制。
      • 不能包含TEXT或BLOB字段。
    • MEMORY存储引擎以前被称为HEAP引擎

    选择合适的存储引擎

    • MyISAM表最适合于大量的数据读而少量数据更新的混合操作。MyISAM表的另一种适用情形是使用压缩的只读表。
    • 如果查询中包含较多的数据更新操作,应使用InnoDB。其行级锁机制和多版本的支持为数据读取和更新的混合操作提供了良好的并发机制。
    • 可使用MEMORY存储引擎来存储非永久需要的数据,或者是能够从基于磁盘的表中重新生成的数据。
  • 相关阅读:
    当你开始学习编程时,你最希望知道什么?我想起来的只有27件事!
    神父说,要有光,要有码农,于是十大天神创造了宏大的编程界!
    我今天就要说HTML它就是一门编程语言!只有外行才说它是超文本标记语言!
    【源码分享】用C++实现通讯录管理系统!功能齐全,实属精品!
    虎牙员工自曝被公司HR带着五个人抬出公司扔到门外!虎牙回应:他简历造假!
    C与C++的互相调用!就像大学宿舍一样,我用你的,你用我的!
    为什么你的简历总会石沉大海!一定要真实,切勿造假!
    Python3列表
    Python3元组
    线程回收
  • 原文地址:https://www.cnblogs.com/thrseven/p/15120751.html
Copyright © 2011-2022 走看看