mysql常见存储引擎特点

Table of Contents

  1. MyISAM 引擎
  2. InnoDB 引擎
  3. 其它存储引擎
  4. 管理存储引擎

MyISAM 引擎

  • MyISAM 引擎特点

    • 不支持事务
    • 表级锁定
    • 读写相互阻塞,写入不能读,读时不能写
    • 只缓存索引
    • 不支持外键约束
    • 不支持聚簇索引
    • 读取数据较快,占用资源较少
    • 不支持 MVCC(多版本并发控制机制)高并发
    • 崩溃恢复性较差
    • MySQL5.5.5 前默认的数据库引擎
  • 适用场景 :只读(或者写较少)、表较小(可以接受长时间进行修复操作)
  • MyISAM 引擎文件
    `tbl_name.frm` 表格式定义
    `tbl_name.MYD` 数据文件
    `tbl_name.MYI` 索引文件

InnoDB 引擎

  • InnoDB 引擎特点

    • 支持事务,适合处理大量短期事务
    • 行级锁
    • 读写阻塞与事务隔离级别相关
    • 可缓存数据和索引
    • 支持聚簇索引
    • 崩溃恢复性更好
    • 支持 MVCC 高并发
    • 从 MySQL5.5 后支持全文索引
    • 从 MySQL5.5.5 开始为默认的数据库引擎
  • InnoDB 数据库文件,两种情况:
    1. 所有 InnoDB 表的数据和索引放置于同一个表空间中

      • 表空间文件:datadir 定义的目录下
      • 数据文件:ibddata1, ibddata2,…
    2. 每个表单独使用一个表空间存储表的数据和索引
      • 启用: innodb_file_per_table=ON
      • 参看:innodb文件
      • 数据文件(存储数据和索引): tb_name.ibd
      • 表格式定义: tb_name.frm

其它存储引擎

  • Performance_Schema : Performance_Schema 数据库使用
  • Memory :将所有数据存储在 RAM 中,以便在需要快速查找参考和其他类似数据的环境中进行快速访问.适用存放临时数据.
    引擎以前被称为 HEAP 引擎
  • MRG_MyISAM :使 MySQL DBA 或开发人员能够对一系列相同的 MyISAM 表进行逻辑分组,并将它们作为一个对象引用.
    适用于 VLDB(Very Large DataBase)环境,如数据仓库
  • Archive :为存储和检索大量很少参考的存档或安全审核信息,只支持 SELECT 和 INSERT 操作;支持行级锁和专用缓存区
  • Federated 联合:用于访问其它远程 MySQL 服务器一个代理,它通过创建一个到远程 MySQL 服务器的客户端连接,
    并将查询传输到远程服务器执行,而后完成数据存取,提供链接单独 MySQL 服务器的能力,以便从多个物理服务器创建一个
    逻辑数据库.非常适合分布式或数据集市环境
  • BDB :可替代 InnoDB 的事务引擎,支持 COMMIT、ROLLBACK 和其他事务特性
  • Cluster/NDB :MySQL 的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常
    工作时间和可用性
  • CSV :CSV 存储引擎使用逗号分隔值格式将数据存储在文本文件中.可以使用 CSV 引擎以 CSV 格式导入和导出其他软件和
    应用程序之间的数据交换
  • BLACKHOLE :黑洞存储引擎接受但不存储数据,检索总是返回一个空集.该功能可用于分布式数据库设计,数据自动复制,
    但不是本地存储
  • example :"stub"引擎,它什么都不做.可以使用此引擎创建表,但不能将数据存储在其中或从中检索.目的是作为例子来说明
    如何开始编写新的存储引擎

管理存储引擎

  • 查看 mysql 支持的存储引擎: SHOW ENGINES;
  • 查看当前默认的存储引擎: SHOW VARIABLES LIKE ‘%storage_engine%‘;
  • 设置默认的存储引擎: vim /etc/my.conf
    [mysqld]
    default_storage_engine= InnoDB
  • 查看库中所有表使用的存储引擎: SHOW TABLE STATUS FROM db_name;
  • 查看库中指定表的存储引擎:
    SHOW TABLE STATUS LIKE ‘ tb_name ‘;
    SHOW CREATE TABLE tb_name;
  • 设置表的存储引擎:
    CREATE TABLE tb_name(... ) ENGINE=InnoDB;
    ALTER TABLE tb_name ENGINE=InnoDB;

原文地址:https://www.cnblogs.com/chaoyiyang/p/12148394.html

时间: 2024-10-10 08:48:33

mysql常见存储引擎特点的相关文章

MySQL数据库常见存储引擎(一)

熟悉mysql数据库的朋友,肯定会喜欢mysql强大的插件式存储引擎,能够支持太多存储引擎,当目前的存储引擎不能满足你的需求时,你可以根据自己的需求选择合适的引擎,将相关的文件拷贝到相关路径,甚至不需要重启数据库,就可以使用.真的很强大. 1 常见存储引擎memory存储引擎  硬盘上存储表结构信息,格式为.frm,数据存储在内存中    不支持blob text等格式    创建表结构,    支持表锁    支持B树索引和哈希索引    支持数据缓存 数据 缓存    插入速度快    分配

MySQL数据库存储引擎

MySQL数据库存储引擎 MySQL数据库是一种关系型数据库,数据时存放在数据库中的一张一张的表中的,各个表之间或有关联,表中的每行相关,每列是不相关.这是关系型数据库的基本存储方式. MySQL存储引擎是为了在各种不同的条件下对数据存放的可靠性.关联性.读写等方面做出的一个可供选择的存储模式. 当前使用较多的MySQL存储引擎主要有以下几个,MyISAM,InnoDB,BdB,Memory等,这些存储引擎主要在以下几个方面有所区分,锁定水平.处理方式.存储方式和索引技巧方面有所不同. mysq

Mysql的存储引擎介绍

下面主要介绍InnoDB.MyISAM和MEMEORY三种存储引擎. InnoDB存储引擎 InnoDB遵循CNU通用公开许可(GPL)发行.InnoDB已经被一些重量级互联网公司所采用,如雅虎.Slashdot和Google,为用户操作非常大的数据库提供了一个强大的解决方案.InnoDB给MySQL的表提供了事务.回滚.崩溃修复能力和多版本并发控制的事务安全.MySQL从3.23.34a开始包含InnoDB存储引擎.InnoDB是MySQL上第一个提供外键约束的表引擎,而且InnoDB对事务处

MySQL各存储引擎特点及选择建议

Mysql官方存储引擎比较常见的存储引擎有:Innodb.MyISAM.Memory.Archive.NDB.BDB,第三方比较有名的:TokuDB.Infobright.InnfiniDB.XtraDB(Innodb增强版本) 官方存储引擎的特点对比 MySQL存储引擎比较 特性 MyISAM InnoDB Memory Archive NDB BDB 存储限制   No   64TB   Yes   No   Yes    No 事务   √      √ MVCC   √  √   √  

Mysql的存储引擎和索引

2 Mysql的存储引擎和索引 可以说数据库必须有索引,没有索引则检索过程变成了顺序查找,O(n)的时间复杂度几乎是不能忍受的.我们非常容易想象出一个只有单关键字组成的表如何使用B+树进行索引,只要将关键字存储到树的节点即可.当数据库一条记录里包含多个字段时,一棵B+树就只能存储主键,如果检索的是非主键字段,则主键索引失去作用,又变成顺序查找了.这时应该在第二个要检索的列上建立第二套索引.  这个索引由独立的B+树来组织.有两种常见的方法可以解决多个B+树访问同一套表数据的问题,一种叫做聚簇索引

Mysql运维管理-MySQL数据库存储引擎知识19

1.MySQL 引擎概述 1.1 什么是存储引擎 我们在录制一个视频文件的时候,可以转换成不同的格式如mp4,avi,wmv等,而且在电脑的磁盘上也会存在于不同类型的文件系统windows里常见的ntfs,fat32,存在于linux操作系统里常见的ext3,ext4,xfs.但是跟我们呈现的内容都是一样的,直观的区别是占用系统空间的大小与清晰程度不一样.那么数据库存储引擎也有很多种存储方式.无论用什么存储引擎来存储,用户看到的数据都是一样的.不同的引擎存储,引擎功能,占用的空间的大小,读取性能

mysql 的存储引擎介绍

在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库.而在设计表的时候,我们都会关注一个问题,使用什么存储引擎.等一下,存储引擎?什么是存储引擎? 什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能. 例如,如果你在研究大量的临时数据,你也许需要使用内存MySQL

mysql innodb存储引擎的聚集索引

InnoDB聚集索引 MySQL有没有支持聚集索引,取决于采用哪种存储引擎. MySQL InnoDB一定会建立聚集索引,所谓聚集,指实际数据行和相关的键值保存在一块,这也决定了一个表只能有一个聚集索引,即MySQL不会一次把数据行保存在二个地方.InnoDB通常根据主键值(primary key)进行聚集,但是当一个表没有PK怎么办?InnoDB选取聚集索引参照列的顺序是: 1.如果声明了主键(primary key),则这个列会被做为聚集索引2.如果没有声明主键,则会用一个唯一且不为空的索引

mysql数据库存储引擎及区别

MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERATED.ARCHIVE.CSV.BLACKHOLE. mysql的存储引擎包括:MyISAM.InnoDB.BDB.MEMORY.MERGE.EXAMPLE.NDBCluster.ARCHIVE.CSV.BLACKHOLE.FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是