`
lihong11
  • 浏览: 452533 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

mysql的几种表类型

阅读更多

七种Mysql表类型

 

学习Mysql数据库,Mysql 表类型都有哪些是一定需要知道的,下面就为您介绍七种Mysql表类型,希望能对您学习Mysql表类型有所帮助。

MySQL作为当前最为流行的免费数据库服务引擎,已经风靡了很长一段时间,不过也许也有人对于MySQL的内部环境不很了解,尤其那些针对并发性处理的机制。今天,我们先了解一下Mysql表类型,以及它们的一些简单性质。

截至目前,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对一些功能不支持。

分享到:
评论

相关推荐

    实战体验几种MysqlCluster 方案.docx

    MySQL Cluster 的架构及实现原理主要由三种类型的服务组成: 1. NDB Management Server:管理服务器主要用于管理 cluster 中的其他类型节点(Data Node 和 SQL Node),通过它可以配置 Node 信息,启动和停止 Node...

    mysql面试题,MySQL中有几种索引类型,可以简单说说吗?

    MySQL中有几种索引类型,可以简单说说吗? FULLTEXT :即为全文索引,目前只有MyISAM引擎支持。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引...

    Mysql 表类型(存储引擎)

    以下是对MySQL中几种主要表类型的详细介绍: 1. **InnoDB** - InnoDB是MySQL的默认存储引擎,它支持事务处理和行级锁定,这使得InnoDB在并发环境下表现出色,适用于需要高数据一致性和事务安全性的应用。 - ...

    MySQL索引类型大汇总

    索引可以分为以下几种: * 单列索引 * 组合索引 * 唯一索引 * 主键索引 7.索引的使用 索引的使用可以根据实际情况选择,例如: * 对频繁查询的字段建立索引 * 对插入、更新、删除操作频繁的字段建立索引 * 对...

    Mysql表的七种类型详细介绍

    MySQL数据库支持多种表类型,每种类型都有其特定的用途和优势。在了解这些类型之前,首先要明白事务安全性和非安全性对于数据库操作的重要性。事务安全表支持ACID(原子性、一致性、隔离性和持久性)特性,确保数据...

    mysql 存储引擎和表类型

    MySQL数据库系统支持多种存储引擎,每种引擎都有其特定的功能和适用场景,下面将详细介绍其中几个常见的存储引擎。 1. **MyISAM**:MyISAM是MySQL的默认存储引擎,适用于读取频繁的场景。它提供了高速的存储和检索...

    Mysql正式/测试数据库表结构差异对比

    3. **比较表结构**:逐个比较两个数据库中的表,查找表名的差异以及每个表中字段(列)的差异,如字段数量、字段名称、字段类型、主键、外键等。 4. **反馈结果**:将发现的差异以清晰易懂的方式呈现给用户,可能是...

    MySQL 5.5.8 分区表性能测试

    在MySQL 5.5.8中,对分区表的优化主要体现在以下几个方面: 1. **分区类型**:MySQL支持多种分区类型,包括范围(RANGE)、列表(LIST)、哈希(HASH)和键值(KEY)。范围分区通常基于数值或日期范围,列表分区则...

    oracle中的BLOB(照片)转换到mysql中

    BLOB是一种可以存储大量二进制数据的对象,分为四种子类型:BLOB、CLOB、NCLOB和BFILE。在Oracle中,BLOB用于存储二进制数据,如照片;而在MySQL中,BLOB也有类似的分类,包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB...

    mysql text类型不允许有默认值

    当你遇到“mysql `TEXT`类型不允许有默认值”的问题时,有几种解决方法可以考虑: 1. **使用`VARCHAR`替代**:如果默认值可以限制在`VARCHAR`的长度范围内,你可以改为使用`VARCHAR`类型,并设置默认值。`VARCHAR`...

    MySQL分区表:万字详解与实践指南

    MySQL分区表:万字详解与实践指南 在处理大型MySQL数据库时,分区表是一种...5.复合分区:结合了上述几种分区方式的分区方法。 分区表的优势 1.性能提升:分区可以极大地提高某些类型的查询性能,特别是当查询只访问

    中国城市数据表(mysql)

    此外,MySQL支持多种数据类型和约束,可以适应不同类型的地理数据和文本数据,使得数据管理更为灵活。 总的来说,"中国城市数据表(mysql)"提供了全面的中国城市信息,结合MySQL数据库的优势,为开发者和研究人员...

    MySQL中文参考手册

    MySQL是一种流行的开源关系型数据库管理系统的(RDBMS),它以其高效、稳定和易于扩展的特性而受到全球广大用户的青睐。这份手册涵盖了MySQL的基础知识到高级特性的方方面面,旨在帮助用户深入理解和熟练运用MySQL。 ...

    Mysql 5.1 和 Mysql驱动

    MySQL驱动通常分为几种类型,包括JDBC驱动、ODBC驱动、PHP驱动等,它们为不同的编程语言提供了与MySQL交互的接口。在Windows环境下,`libmySQL.dll`是一个动态链接库文件,它是MySQL C API驱动的一部分,用于C或C++...

    mysql中将一个表数据批量导入另一表.rar

    批量导入数据的方法有很多种,以下是几种常见的方法: 1. **使用INSERT INTO SELECT语句**: 这是直接在SQL查询中完成数据导入的最简单方式。例如: ```sql INSERT INTO target_table (column1, column2, ...) ...

    MySql读写Xml两种方式性能比较

    本篇文章将详细探讨MySQL中利用存储过程读取和写入XML数据的两种方法,主要关注使用`ExtractValue`函数的性能表现。 1. **XML在MySQL中的基础** XML(Extensible Markup Language)是一种用于描述数据的语言,广泛...

    mysql驱动jar 文件适用MySQL5.7

    MySQL JDBC驱动主要有以下几部分组成: 1. **com.mysql.jdbc.Driver**: 这是实际的JDBC驱动类,需要在程序中注册到Java的DriverManager中,以便创建到MySQL服务器的连接。 2. **Connection**: 表示到MySQL服务器的...

    根据java文件动态生成Mysql表.rar

    在本案例中,"根据java文件动态生成Mysql表.rar" 提供了一种方法,通过Java来动态地生成MySQL数据库的表结构。这一过程涉及到了几个关键的技术点,包括Java反射、Java编译API以及MySQL的JDBC操作。 首先,让我们...

    MySQL 创建数据表.docx

    MySQL 是一种广泛使用的开源关系型数据库管理系统,它支持多种操作系统,并且提供了丰富的功能,包括数据表的创建、查询、更新和删除等操作。在MySQL中,创建数据表是构建数据库结构的基础步骤,它定义了表的结构,...

    实战体验几种MysqlCluster 方案.zip

    在本实战体验中,我们将探讨几种不同的MysqlCluster配置方案,结合Java开发环境,来理解其工作原理和优势。以下是关于MySQL Cluster的一些关键知识点: 1. **分片(Sharding)**:MySQL Cluster通过数据分片实现...

Global site tag (gtag.js) - Google Analytics