七种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常见面试问题详解 #### 1. MySQL简介与特性 ...以上内容涵盖了MySQL面试中常见的几个问题及其解答思路。希望这些知识点能够帮助你更好地理解和掌握MySQL的相关知识,并在面试中表现出色。
MySQL中有几种索引类型,可以简单说说吗? FULLTEXT :即为全文索引,目前只有MyISAM引擎支持。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引...
**1.5 MySQL的binlog有几种记录格式?分别有什么区别?** MySQL的binlog有两种记录格式: - **Row-based**:记录每一行数据的变化,适用于大多数情况,因为它可以捕获所有的数据更改。 - **Statement-based**:记录...
CHAR和VARCHAR是MySQL中的两种字符类型。CHAR类型是定长字符串,VARCHAR类型是变长字符串。CHAR类型的优点是查询速度快,但缺点是浪费存储空间。VARCHAR类型的优点是节省存储空间,但缺点是查询速度慢。 NOW()和...
- 介绍几种常见的MySQL备份方法,如mysqldump和binlog。 - 如何使用pt-online-schema-change进行在线表结构修改? 10. **安全性** - 解释GRANT和REVOKE命令在权限管理中的作用。 - 如何设置和管理用户权限以...
在MySQL数据库高级工程师的面试中,面试官通常会针对以下几个核心领域进行深度考察: 1. **SQL语言基础**:包括但不限于DML(数据操作语言)如INSERT、UPDATE、DELETE,DDL(数据定义语言)如CREATE TABLE、ALTER ...
其次,MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),面试时可能涉及: 1. **SQL语言**:包括DML(INSERT、UPDATE、DELETE)、DDL(CREATE、ALTER、DROP)、DQL(SELECT查询)和事务操作。 2. **数据库...
MySQL中有哪几种锁? MySQL中有哪些不同的表现形式? 简单描述在MySQL数据库中MyISAM和InnoDB的区域 MySQL中InnoDB支持的四种事务隔离级别别名 CHAR 和 VARCHAR 的区别? 主键和候选键有什么区别? myisamchk 是用来...
6. Mysql 中有哪几种锁?MySQL 中有表级锁、行级锁和页面锁三种锁。表级锁开销小,加锁快,锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁开销大,加锁慢,锁定粒度最小,发生锁冲突的概率最低,并发度也...
这里我们来看几个常见的面试题及其解决方案。 首先,第一个问题涉及到使用`CASE`语句来根据员工的工资返回不同的状态消息。在MySQL中,`CASE`语句允许我们根据条件进行逻辑判断,并返回相应的值。对于给定的数据,...
MySQL 支持多种存储引擎,每种引擎都有其特点和适用场景。熟悉不同的存储引擎可以帮助开发者更合理地选择适合应用需求的存储方式。 **知识点详解**: - **InnoDB**:深入探讨InnoDB的特点及其适用场景,如事务处理...
### MySQL数据库工程师常见面试题详解 #### 问题1:为什么GROUP BY和ORDER BY会使查询变慢? GROUP BY 和 ORDER BY 操作通常会增加查询的复杂度,从而导致性能下降。这是因为这两种操作通常需要对查询结果进行额外...
本文将深入探讨MySQL中的几个关键概念,包括存储引擎、SQL执行过程、索引类型、事务处理以及性能优化策略。 首先,我们来看MySQL的两种主要存储引擎:MyISAM和InnoDB。MyISAM不支持行级别的锁,而InnoDB支持,这...
面试中,对于MySQL的考察通常会涉及到以下几个关键知识点: 1. **MySQL简介**:MySQL是一种ACID(原子性、一致性、隔离性、持久性)遵循的关系型数据库,支持SQL标准,其主要特点是开源、免费、速度快、可移植性强...
MySQL 面试题汇总 MySQL 是一种流行的开源关系数据库...这些问题涵盖了 MySQL 的一些关键概念和技术,包括视图、数据备份和恢复、触发器、分页查询和跨表查询等。了解这些知识点对于 MySQL 开发者和管理员非常重要。
9. 数据库事务有哪几种? 数据库事务有四种基本特性:隔离性、一致性、原子性、持续性。 10. MySQL中InnoDB支持的四种事务隔离级别 InnoDB支持四种事务隔离级别: * Read Uncommitted(读取未提交内容) * Read ...
1、MySQL 中有哪几种锁? 1、表级锁: 开销小, 加锁快; 不会出现死锁; 锁定粒度大, 发生锁冲突的概率最高, 并发度最低。 2、行级锁: 开销大, 加锁慢; 会出现死锁; 锁定粒度最小, 发生锁冲突的概率最低, ...
除了传统的关系型数据库之外,还有以下几种 NoSQL 数据库: * Memcached:分布式内存对象缓存系统,可以与 MySQL 数据库协同使用 * Redis:基于内存亦可持久化的日志型、Key-Value 数据库 * MongoDB:基于分布式...
1. MySQL中有哪几种锁? MySQL中有共享锁和排他锁两种,共享锁可以多个事务同时访问同一个资源,而排他锁只能由一个事务访问。 2. MySQL中有哪些不同的表格? MySQL中有MyISAM和InnoDB两种存储引擎,MyISAM支持表锁...