栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

MySQL存储引擎

Java 更新时间:发布时间: 百科书网 趣学号

 目录

1、存储引擎总结对比

2、存储引擎明细对比

2.1、MyISAM

2.2、MEMORY

2.3、InnoDB(默认)

3、存储引擎选择


问题:MySQL有哪些存储引擎?默认是哪个?有什么区别?如何选择存引擎?

1、存储引擎总结对比

在mysql5之后,支持的存储引擎有9种,但是常用的就那么几种,而且默认支持的是InnoDB。

我们可以使用命令来看看当前数据库可以支持的存储引擎有哪些。

show engines;

也可以查询当前表使用什么存储引擎: SHOW TABLE STATUS from 数据库库名 where Name=’表名’

SHOW TABLE STATUS from user_db where Name='t_user';

不同的存储引擎都有各自的特点,以适应不同的需求,如表所示,下面我们来对常用的3种存储引擎进行一个对比。为了做出选择,首先要考虑每一个存储引擎提供了哪些不同的功能。

功能MyISAMMEMORYInnoDB
存储限制256TBRAM64TB
支持事务NONOYES
支持全文索引YESNONO
支持B树索引YESYESYES
支持HASH索引NOYESNO
支持数据缓存NONOYES
支持数据压缩YESNONO
空间使用率N/A
支持外键NONOYES

2、存储引擎明细对比

2.1、MyISAM
  1. 主要特点:不支持事务,也不支持外键,存储速度、访问速度快,表级锁定,对事务完整性没有要求或者以SELECT、INSERT为主的应用基本都可以使用这个引擎来创建表;

  2. 磁盘存储文件:每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同,但是扩展名分别为:

    • frm--存储表结构
    • MYD--MYData,存储数据
    • MYI--MYIndex,存储索引
  3. 支持3种不同的存储格式:

    • 静态(固定长度)表--默认的存储格式,优点在于存储速度非常快,容易发生缓存,而且表发生损坏后也容易修复,缺点是占空间;
    • 动态(可变长)表--优点是节省空间,但更新频繁容易产生碎片,故障恢复较难;
    • 压缩表--支持数据压缩,占用空间非常小

2.2、MEMORY
  1. 主要特点:数据存储在内存,宕机数据会丢失,不支持TEXT和BLOB类型,因VARCHAR在MySQL内部当做长度固定不变的CHAR类型,所以支持;
  2. 磁盘存储文件:frm--存储表结构;
  3. 索引:支持hash索引(默认)、B树索引;

2.3、InnoDB(默认)
  1. 主要特点:支持事务,默认的事务隔离级别为Repeatable read(可重复读),通过MVCC(并发版本控制)来实现的,支持外键约束,支持自动增加列AUTO_INCREMENT属性,支持自动灾难恢复,热备,支持数据缓存,行级锁定,比较适合处理多重并发更新请求:
  2. 磁盘存储文件:
    • frm--存储表结构
    • ibd--存储数据和索引,位于B+数的叶子节点上,分区表有独立的ibd文件;
  3. 索引:B树索引

3、存储引擎选择

使用哪一种引擎需要灵活选择,一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会提高整个数据库的性能。 选择合适的存储引擎的标准可以分为:

  • 是否支持事务?--InnoDB
  • 是否需要使用热备?--InnoDB
  • 是否需要外键支持?--InnoDB
  • 是否支持崩溃恢复?--InnoDB、MyISAM
  • 是否以读为主的业务?--MyISAM
  • 是否数据较小,且被频繁使用,允许丢失?--MEMORY

然后按照标准,选择对应的存储引擎即可。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/294882.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号