美文网首页
【笔记】七种Mysql 表类型

【笔记】七种Mysql 表类型

作者: 云中有诗 | 来源:发表于2019-02-26 17:47 被阅读0次

截至目前,MySQL 一共向用户提供了包括DBD、HEAP、ISAM、MERGE、MyIAS、InnoDB以及Gemeni 这7 种Mysql 表类型(关系型表)。其中DBD、InnoDB 属于事务安全类表,而其他属于事务非安全类表。

DBD

    Berkeley DB(DBD)表是支持事务处理的表,由Sleepycat 软件公司开发。它提供MySQL 用户期待已久的功能--事务控制。事务控制在任何数据库系统中都是一个极有价值的功能,因为它们确保一组命令能成功地执行或回滚。

HEAP

    HEAP 表是MySQL 中存取数据最快的表。这是因为他们使用存储在动态内存中的一个散列索引,不过如果MySQL 或服务器崩溃,这些内存数据将会丢失。

ISAM

    ISAM 表是早期MySQL 版本的缺省表类型,直到MyIASM 开发出来。建议不要再使用它。

MERGE

    MERGE 是一个有趣的新类型,在3.23.25 之后出现。一个MERGE 表实际上是又一个MyISAM表的集合,合并而成的一个表,主要是为了效率的考虑,因为这样不仅仅可以提高速度、搜索效率、修复效率而且还节省了磁盘空间。

MyIASM

    MyIASM 基于了IASM 代码,应该可以说是IASM 的衍生品,不过增加了不少有用的扩展。它是MySQL 的默认数据表类型,基于了传统的ISAM 类型,ISAM 是Indexed Sequential Access Method(有索引的顺序访问方法)的缩写,一般来说,它是存储记录和文件的标准方法。与其他存储引擎比较,MyISAM 具有检查和修复表格的大多数工具。ISAM 表格可以被压缩,而且它们支持全文搜索,不过它们是事务不安全的,而且也不支持外键。如果事务回滚将会造成不完全回滚,从而不具备原子性。所以假如忽略事务以及访问并发性的话,并且需要执行大量的SELECT 检索语句的话,MyISAM 将是最好的选择。

InnoDB

    InnoDB 是MySQL 4.0 之后推出的一种比较新的数据表类型,这种类型是事务安全的。它与BDB 类型具有相同的特性,它们还支持外键。InnoDB 表格速度很快具有比BDB 还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它。如果你的数据执行大量的INSERT 或UPDATE,出于性能方面的考虑,同样应该使用InnoDB 表。对于支持事务的InnoDB 类型的表来说,影响速度的主要原因是AUTOCOMMIT 默认设置是打开的,而且程序没有显式调用BEGIN 开始事务,导致每插入一条都自动提交,严重影响了速度。可以在执行sql 前调用begin,多条sql 形成一个事物(即使autocommit 打开也可以),将大大提高性能。

Gemeni

    Gemeni 表,据听说也是在MySQL 4.0 之后推出的,不过截至当前,很少有针对它的介绍,同样应用也就更少了,我们暂时不作介绍。MySQL 的数据表类型很多,其中比较重要的是MyISAM,InnoDB 这两种。这两种类型各有优缺点,需要根据实际情况选择适合的,MySQL 支持对不同的表设置不同的类型。下面做个简单的对比:MyISAM 表类型是一种比较成熟稳定的表类型,但是MyISAM 对一些功能不支持。

相关文章

  • 【笔记】七种Mysql 表类型

    截至目前,MySQL 一共向用户提供了包括DBD、HEAP、ISAM、MERGE、MyIAS、InnoDB以及Ge...

  • MySQL表类型、选择合适数据类型、字符集

    MySQL学习笔记(4) 表类型(存储引擎)的选择 插件式存储引擎是MySQL最重要特性之一,5.5之前默认引擎为...

  • MySQL分区表

    确认mysql是否支持分区表 mysql分区表的特点 创建mysql数据表为hash表 常用mysql分区的类型 ...

  • MySQL 学习笔记

    MySQL 学习笔记 数据库操作 表的操作 数据操作 字符集编码 数据类型(列类型) 1. 数值类型 2. 字符串...

  • My SQL 3

    2.1 MySQL 基础 (二)- 表操作 #学习内容# 1. MySQL表数据类型 2. 用SQL语句创建表 ...

  • MySQL数据类型

    MySQL学习笔记(2) mysql支持的数据类型 mysql数值类型 关于每个类型的详细信息可以通过 ? int...

  • MySql笔记

    Mac安装并运行MySql MySql数据库、数据表的操作 MySql数据类型及常见约束 MySql表操作 MyS...

  • Mysql 表类型(存储引擎)查看与修改

    Mysql 表类型有哪些? 表类型?当初只知道数据库字段类型,varchar、int、float、date等等,怎...

  • Mysql 存储引擎(表类型)有哪些?

    Mysql 表类型有哪些? 表类型?当初只知道数据库字段类型,varchar、int、float、date等等,怎...

  • MySql笔记——关于NULL及NULL列 索引的疑问

    是MySql版本?表结构?索引类型?引擎类型?表数据大小?为什么大家都说 MySql中如果某一列中含有null,那...

网友评论

      本文标题:【笔记】七种Mysql 表类型

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