七种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对一些功能不支持。
分享到:
相关推荐
MySQL Cluster 的架构及实现原理主要由三种类型的服务组成: 1. NDB Management Server:管理服务器主要用于管理 cluster 中的其他类型节点(Data Node 和 SQL Node),通过它可以配置 Node 信息,启动和停止 Node...
MySQL中有几种索引类型,可以简单说说吗? FULLTEXT :即为全文索引,目前只有MyISAM引擎支持。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引...
以下是对MySQL中几种主要表类型的详细介绍: 1. **InnoDB** - InnoDB是MySQL的默认存储引擎,它支持事务处理和行级锁定,这使得InnoDB在并发环境下表现出色,适用于需要高数据一致性和事务安全性的应用。 - ...
根据提供的文件信息,本文将详细解释与MySQL系统表查询相关的几个关键知识点,包括如何查询数据库中的表名、字段类型以及如何使用系统表进行查询。同时,我们也会介绍如何通过SQL语句来添加新列。 ### 知识点一:...
索引可以分为以下几种: * 单列索引 * 组合索引 * 唯一索引 * 主键索引 7.索引的使用 索引的使用可以根据实际情况选择,例如: * 对频繁查询的字段建立索引 * 对插入、更新、删除操作频繁的字段建立索引 * 对...
MySQL数据库支持多种表类型,每种类型都有其特定的用途和优势。在了解这些类型之前,首先要明白事务安全性和非安全性对于数据库操作的重要性。事务安全表支持ACID(原子性、一致性、隔离性和持久性)特性,确保数据...
MySQL数据库系统支持多种存储引擎,每种引擎都有其特定的功能和适用场景,下面将详细介绍其中几个常见的存储引擎。 1. **MyISAM**:MyISAM是MySQL的默认存储引擎,适用于读取频繁的场景。它提供了高速的存储和检索...
除了使用`INFORMATION_SCHEMA.COLUMNS`之外,还有其他几种方法可以用来查询表中的字段数量: 1. **使用`DESCRIBE`命令:** - `DESCRIBE table_name;`会列出表的所有字段及其类型、是否为空等信息。虽然这种方法不...
- BLOB:二进制大对象,用于存储大量二进制数据,如图片、视频等,分为TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB几种类型。 - TEXT:可变长度的文本数据类型,分为TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT几种类型。 4...
3. **比较表结构**:逐个比较两个数据库中的表,查找表名的差异以及每个表中字段(列)的差异,如字段数量、字段名称、字段类型、主键、外键等。 4. **反馈结果**:将发现的差异以清晰易懂的方式呈现给用户,可能是...
MySQL 表分区是一种高级的数据组织技术,它允许将大型表分成较小、更易管理和处理的部分。这种技术对于处理海量数据,尤其是超过亿级别的数据集非常有效,可以显著提升查询性能和数据管理效率。本文将详细介绍MySQL...
在实际应用中,还需要注意其他几种优化Join的策略,如: 1. 避免在where条件中使用函数或者表达式,这会阻止MySQL利用索引。 2. 确保Join操作中的连接字段有相同类型的数据。 3. 使用EXPLAIN语句来查看查询的执行...
在MySQL数据库管理系统中,**临时表**是一种特殊类型的表,主要用于存储中间结果集,它可以帮助执行一些复杂的查询操作,如`GROUP BY`、`DISTINCT`、某些`ORDER BY`以及`UNION`等操作。临时表在完成特定任务后会被...
下面将详细介绍几种常用的 MySQL 数据类型及其应用场景。 #### 整数类型 1. **SMALLINT** - **描述**:用于存储相对较小的整数,取值范围为-32768到32767(带符号)或0到65535(无符号)。 - **推荐使用场景**:...
在MySQL 5.5.8中,对分区表的优化主要体现在以下几个方面: 1. **分区类型**:MySQL支持多种分区类型,包括范围(RANGE)、列表(LIST)、哈希(HASH)和键值(KEY)。范围分区通常基于数值或日期范围,列表分区则...
BLOB是一种可以存储大量二进制数据的对象,分为四种子类型:BLOB、CLOB、NCLOB和BFILE。在Oracle中,BLOB用于存储二进制数据,如照片;而在MySQL中,BLOB也有类似的分类,包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB...
本文将介绍几种解决MySQL锁表问题的方法。 1. **查看并杀死锁定进程** 使用`SHOW PROCESSLIST`命令可以查看当前所有正在执行的SQL语句及其状态,包括是否被锁定。如果发现有锁定的进程,可以使用`KILL`命令来终止...
range、list和hash分区是MySQL提供的几种分区策略,每种策略根据不同的场景和需求进行选择和应用。在对数据库进行分区之前,需要评估数据的使用模式和表的大小,以及是否需要通过分区来实现数据的快速删除和查询优化...
临时表最适合用于以下几种情况: 1. **大数据量筛选**:当需要从大表中提取少量数据进行后续处理时,先将所需数据加载到临时表中,再在临时表上执行查询往往比直接在大表上操作更高效。 2. **复杂查询中间结果存储*...
当你遇到“mysql `TEXT`类型不允许有默认值”的问题时,有几种解决方法可以考虑: 1. **使用`VARCHAR`替代**:如果默认值可以限制在`VARCHAR`的长度范围内,你可以改为使用`VARCHAR`类型,并设置默认值。`VARCHAR`...