首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql 所有引擎

MySQL 所有引擎

基础概念

MySQL 是一个流行的关系型数据库管理系统(RDBMS),它支持多种存储引擎,每种引擎都有其特定的优势和用途。存储引擎决定了数据如何存储、检索以及如何处理并发操作。

相关优势

  1. InnoDB:这是 MySQL 的默认存储引擎,支持事务处理、行级锁定和外键。它提供了 ACID(原子性、一致性、隔离性、持久性)兼容的事务安全。
  2. MyISAM:这是一个快速、非事务处理的存储引擎,适合读取密集型应用。它不支持事务,也不支持外键。
  3. Memory:所有数据都存储在内存中,因此读写速度非常快。适合临时表和需要高速缓存的场景。
  4. CSV:数据以 CSV 格式存储,适合需要与其他系统交换数据的场景。
  5. Archive:适合存储大量历史数据,只支持 INSERT 和 SELECT 操作,不支持 UPDATE 和 DELETE。
  6. Blackhole:数据写入后会被丢弃,通常用于日志记录或复制的中继。
  7. Federated:允许连接多个 MySQL 服务器,将它们视为一个逻辑数据库。

类型

  • 事务型引擎:如 InnoDB,支持事务处理。
  • 非事务型引擎:如 MyISAM,不支持事务处理。
  • 内存型引擎:如 Memory,数据存储在内存中。
  • 特殊用途引擎:如 CSV、Archive、Blackhole 等。

应用场景

  • InnoDB:适用于需要高并发、事务处理和数据完整性的应用。
  • MyISAM:适用于读取密集型应用,不需要事务支持。
  • Memory:适用于需要快速读写操作的临时表或缓存。
  • CSV:适用于需要与其他系统交换 CSV 格式数据的场景。
  • Archive:适用于存储大量历史数据,不需要频繁更新的场景。
  • Blackhole:适用于日志记录或复制的中继,不需要保留数据的场景。

常见问题及解决方法

  1. InnoDB 表损坏
    • 原因:可能是由于硬件故障、操作系统崩溃或 MySQL 本身的 bug 导致的。
    • 解决方法:使用 mysqlcheck 工具进行修复,或者从备份中恢复数据。
  • MyISAM 表损坏
    • 原因:MyISAM 表更容易受到操作系统崩溃或电源故障的影响。
    • 解决方法:使用 myisamchk 工具进行修复,或者从备份中恢复数据。
  • 内存引擎数据丢失
    • 原因:服务器重启或崩溃会导致内存中的数据丢失。
    • 解决方法:确保关键数据存储在持久化存储引擎中,如 InnoDB。
  • CSV 表导入导出问题
    • 原因:CSV 文件格式不正确或编码问题。
    • 解决方法:检查 CSV 文件的格式和编码,确保与 MySQL 表定义一致。

示例代码

代码语言:txt
复制
-- 创建一个 InnoDB 表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
) ENGINE=InnoDB;

-- 创建一个 MyISAM 表
CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    price DECIMAL(10, 2)
) ENGINE=MyISASM;

-- 创建一个 Memory 表
CREATE TABLE temp_data (
    id INT AUTO_INCREMENT PRIMARY KEY,
    value INT
) ENGINE=Memory;

参考链接

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一文讲述MySQL所有的存储引擎

每天早上七点三十,准时推送干货 昨天阿粉已经讲述了关于 MySQL 的存储引擎都有哪些,我们再来回顾一下: MYSQL 存储引擎分类: InnoDB、 MyISAM、 MEMORY、 CSV、 BLACKHOLE...MySQL 的 MyISAM 存储引擎 我们要知道一个事情,MySQL 在 5.58以前,默认使用的不是 InnoDB 引擎,默认使用的就是 MyISAM 存储引擎。...MEMORY 存储引擎(了解) MEMORY是MySQL中一类非常特殊的存储引擎,与MySQL中其他的存储引擎不同的是MEMORY存储引擎创建包含存储在内存中的内容的专用表。...以CSV格式进行数据存储 所有列必须都是不能为NULL的 不支持索引 可以对数据文件直接编辑 保存文本文件内容 至于剩下的引擎那就真的是了解都是奢侈的呀: Blackhole引擎(知道有这么回事就行)...Blackhole引擎没有实现任何存储机制,它会丢弃所有插入的数据,不做任何保存。

1.1K10

MySQL有哪些存储引擎MySQL存储引擎大全)

MyISAM在所有MySQL版本里被支持;不支持事务处理;它是MySQL的默认的存储引擎; MEMORY MEMORY存储引擎,别称HEAP存储引擎;提供“内存中”表,将数据存储在内存中。...MEMORY存储引擎不支持事务处理;MySQL所有版本都支持InnoDB存储引擎;注释:MEMORY存储引擎正式地被确定为HEAP引擎。...MRG_MYISAM存储引擎不支持事务处理;MySQL所有版本都支持MRG_MYISAM存储引擎; ISAM Obsolete storage engine, now replaced by MyISAM...MRG_ISAM Obsolete storage engine, now replaced by MERGE InnoDB InnoDB存储引擎,别名INNOBASE;提供事务安全表;MySQL所有版本都支持...NDB NDB存储引擎,别名NDBCLUSTER;NDB Cluster是被MySQL Cluster用来实现分割到多台计算机上的表的存储引擎。它在MySQL-Max 5.1二进制分发版里提供。

6.2K41
  • MySQL 存储引擎

    # MySQL 存储引擎 学习视频地址 (opens new window) MySQL 体系结构 存储引擎介绍 存储引擎特点 InnoDB MyISAM Memory 区别及特点 存储引擎选择 #...所有跨存储引擎的功能也在这一层实现,如 过程、函数等。在该层,服务器会解 析查询并创建相应的内部解析树,并对其完成相应的优化如确定表的查询的顺序,是否利用索引等, 最后生成相应的执行操作。...# InnoDB 介绍 InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后,InnoDB是默认的 MySQL 存储引擎。...# MyISAM 介绍 MyISAM是MySQL早期的默认存储引擎。...MEMORY:将所有数据保存在内存中,访问速度快,通常用于临时表及缓存。MEMORY的缺陷就是 对表的大小有限制,太大的表无法缓存在内存中,而且无法保障数据的安全性。

    2.5K20

    mysql存储引擎

    MySQL5.5以后默认使用InnoDB存储引擎,其中InnoDB和BDB提供事务安全表,其它存储引擎都是非事务安全表。...在MySQL5.1以 后,INFORMATION_SCHEMA数据库中存在一个ENGINES的表,它提供的信息与show engines;语句完全一样,可以使用下面语句来查询哪些存储引擎支持事物处理:...2)外键约束: MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引。      ...VARCHAR是一种长度可变的类型,但因为它在MySQL内部当作长度固定不变的CHAR类型,所以可以使用。...create index mem_hashusinghashontab_memory(city_id);   在启动MySQL服务的时候使用--init-file选项,把insert into..

    19240

    MySQL InnoDB引擎

    # MySQL InnoDB引擎 逻辑存储引擎 架构 概述 内存架构 磁盘结构 后台线程 事务原理 事务基础 redo log undo log MVCC 基本概念 隐藏字段 undolog readview...# 架构 # 概述 MySQL5.5 版本开始,默认使用InnoDB存储引擎,它擅长事务处理,具有崩溃恢复特性,在日常开发中使用非常广泛。下面是InnoDB架构图,左侧为内存结构,右侧为磁盘结构。...MySQL的innoDB引擎中虽然没有直接支持hash索引,但是给我们提供了一个功能就是这个自适应hash索引。...当事务提交之后会把所有修改信息都会存到该日志中, 用于在刷新脏页到磁盘时,发生错误时, 进行数据恢复使用。...那实际上,我们研究事务的原理,就是研究MySQL的InnoDB引擎是如何保证事务的这四大特性的。 而对于这四大特性,实际上分为两个部分。

    1.3K10

    MySQL存储引擎

    存储引擎的选择为不同的业务表选择不同的存储引擎,例如:查询操作多的业务表,用 MyISAM。临时数据用 Memeroy。常规的并发大更新多的表用 InnoDB。...比如在业务系统中,要记录所有接收和发送的消息,这个消息是 XML 格式的,用blob 或者 text 存储,用来追踪和判断重复,可以建立一张表专门用来存储报文。...为什么同样用 MySQL,有的公司可以抗住百万千万级别的并发,而有的公司几百个并发都扛不住,关键在于怎么用。所以,用数据库慢,不代表数据库本身慢,有的时候还要往上层去优化。...当然,如果关系型数据库解决不了的问题,我们可能需要用到搜索引擎或者大数据的方案了,并不是所有的数据都要放到关系型数据库存储。

    10410

    MySQL】存储引擎

    目录 1.MySQL体系结构 2.存储引擎介绍 3.存储引擎特点 4.存储引擎选择 1.MySQL体系结构 MySQL整体的逻辑结构可以分为4层,客户层、服务层、存储引擎层、数据层 客户层 客户层:进行相关的连接处理...触发器、视图等也在这一层 存储引擎层 存储引擎层负责对数据的存储和提取,常见的存储引擎有InnoDB、MyISAM、Memory等,在 MySQL5.5之后,MySQL默认的存储引擎就是InnoDB,InnoDB...而对于存储引擎,也是一样,他是mysql 数据库的核心,我们也需要在合适 的场景选择合适的存储引擎。接下来就来介绍一下存储引擎。...介绍 InnoDB 是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后, InnoDB 是默认的 MySQL 存储引擎。 2)....MEMORY :将所有数据保存在内存中,访问速度快,通常用于临时表及缓存。 MEMORY 的缺陷就 是对表的大小有限制,太大的表无法缓存在内存中,而且无法保障数据的安全性

    3.3K21

    MySQL存储引擎

    文章目录 MySQL存储引擎 一、查看修改存储引擎 二、主要引擎介绍 1、MyISAM引擎 2、InnoDB 引擎 3、MEMORY 引擎 MySQL存储引擎 一、查看修改存储引擎 查看mysql提供什么存储引擎...TABLE 表名 ENGINE = 存储引擎名称; 二、主要引擎介绍 不同引擎的本质上是数据库数据存储的结构方式不同 在不同的数据下数据库储存有不同的需求,所以需要不同的引擎 种类 锁机 制 B/B...SQL的查询速度 外键:子表的字段依赖父表的主键,设置两张表的依赖关系 事务:多个SQL语句,保证它们共同执行的原子操作,要么成功,要么失败,不能只成功一部分,失败需要回滚事务 索引缓存和数据缓存:和MySQL...存储表结构(MySQL8.0时,合并在表名.ibd中) 表名.ibd 存储数据和索引 注:索引采用聚集索引,索引和数据存储在同一个文件 对比MyISAM: 对比MyISAM的存储引擎, InnoDB写的处理效率差一些...并且会占用更多的磁盘空间(数据和索引是一体的,MyISAM是数据和索引分离的) MyISAM只缓存索引,不缓存真实数据;InnoDB不仅缓存索引还要缓存真实数据, 对内存要求较高 ,而且内存大小对性能有决定性的影响 注:MySQL5.5

    2.4K40

    Mysql存储引擎

    前言 MySQL提供了插件式的存储引擎架构。所以MySQL存在多种存储引擎,可以根据需要使用相应的引擎MySQL支持的存储引擎有很多,常用的是:InnoDB,MyISAM。...MEMORY,MERGE作为了解,其中InnoDB提供事务安全,其他存储引擎是非事务安全表。...:  查看Mysql数据库的默认引擎指令: show variables like '%storage_engine%'; 1.1 InnoDB InnoDB存储引擎Mysql的默认引擎。...外键约束 MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候,也会自动的创建对应的索引。...insert into student_all values(3,'幸运'); 总结 对于存储引擎的选择,根据业务需求对应各个存储引擎的特征进行选择即可。

    19920

    mysql 引擎概述

    什么是Mysql 引擎存储引擎Mysql的组件,用于处理Mysql不同类型的表操作。...Mysql5.7支持的存储引擎InnoDB:: 是Mysql5.7默认的执行引擎,是一个事务安全(符合acid标准)存储引擎,有提交,回滚,容灾恢复的能力来保护用户数据。...Memory:将所有数据存储在内存中,以便在需要快速查找非关键数据的环境中快速访问。 该引擎以前被称为 HEAP 引擎。...它的用例在不断减少;Innodb 及其缓冲池内存区域提供了一种通用而持久的方式,可将大部分或所有数据保存在内存中,而 NdbCLUSTER 则可为庞大的分布式数据集提供快速的键值查找。...4.引擎适用场景Mysql 提供的各种存储引擎在设计时考虑了不同的使用情况。 下表概述了 Mysql 提供的一些存储引擎,表后附有说明。

    12210

    Mysql存储引擎

    当别人问我Mysql的存储引擎的时候,我就知道Myisam和innodb 虽然知道有其他的存储引擎,但是从来没有去了解过今天了解一下扩充知识 查看Mysql的存储引擎 show engines; MyISAM...Mysql 5.5之前默认的存储引擎 MyISAM存储引擎由MYD和MYI组成 ?  ...适用场景: 非事物型应用(数据仓库,报表,日志数据) 只读类应用 空间类应用(空间函数,坐标) INNODB MySql5.5以及以后版本默认的存储引擎 innodb_file_per_table   ...特点: 以CSV格式进行数据存储 所有列都不能为Null 不支持索引(不适合大表,不适合在线处理) 可以对数据文件直接编辑(保存文本文件内容) 创建时提示这个存储引擎不支持列为null,需要在字段后添加...使用场景 日志和数据采集应用 存储引擎Memory 文件系统存储特点 也称HEAP存储引擎,所以数据保存在内存中 支持HASH索引和BTree索引 所有字段都是固定长度varchar(10)=char(

    3.1K20

    MySQL Memory引擎

    InnoDB引擎的表我们在执行全表查询的时候,Mmeory引擎的表返回结果0在最后一行,而InnoDB引擎的表0在第一行。...InnoDB和Memory引擎的数据组织方式 InnoDB引擎把数据存储在主键索引上,其他索引上保存的是主键id,该方式称之为索引组织表 Memory引擎把数据单独存放,索引上保存的是数据的位置,该方式称之为堆组织表...InnodDB引擎和Memory引擎的不同 InnoDB数据总是有序存放,Memory引擎表的数据是按照写入顺序存放 数据文件有空洞时,InnoDB表在插入新数据时为保证有序性,只能在固定的位置写入新值...,但是Memory表找到空位就可以插入新值 数据位置发生变更时,InnoDB表只需要修改主键索引,Memory表需要修改所有索引 InnoDB表普通索引需要走两次索引查找,Memory表普通索引只走一次和主键索引没有什么区别...由于MySQL知道重启后内存表数据会丢失,所以在担心主库重启后,出现主备不一致,MySQL会在数据库重启以后往binlog中写一条TRUNCATE TABLE 库名.memeory表名。

    88920

    MySQL 系列】MySQL 引擎

    1、MySQL 引擎介绍 1.1、MySQL 引擎介绍 存储引擎MySQL 的组件,用于处理不同表类型的 SQL 操作。...MySQL引擎的作用包括但不限于以下几个方面: 存储数据:MySQL 引擎负责将数据存储在物理存储介质上,包括硬盘或固态硬盘等。它将数据组织成表、索引等结构,并提供对这些数据的高效访问方式。...1.2、常见引擎及其区别和特点 MySQL支持多种不同类型的存储引擎,每种引擎都有其自身的特点和适用场景。...以下是 MySQL 支持的一些常见引擎及其区别和特点: ① InnoDB: InnoDB 是 MySQL 默认的事务安全引擎,提供了对事务的支持,包括 ACID(原子性、一致性、隔离性、持久性)特性。...; 2、InnoDB 与 MyISAM 存储引擎之间的比较 2.1、事务的支持 InnoDB 支持 ACID 的事务处理,MyISAM 并不支持事务,这里需要注意,如果我们在程序需要进行事务处理,所有的数据都要使用

    24010

    MySQLMySQL的存储引擎

    不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。现在 许多不同的数据库管理系统都支持多种不同的数据引擎MySQL的核心就是存储引擎。...用户可以 根据不同的需求为数据表选择不同的存储引擎 可以使用 SHOW ENGINES 命令 可以查看Mysql所有执行引擎我们 可以到 默认的执行引擎是innoDB 支持事务,行级锁定和外键。...分类  MyISAM:Mysql 5.5之前的默认数据库引擎,最为常用。...拥有较高的插入,查询速度,但不支持事 务 InnoDB:事务型速记的首选引擎,支持ACID事务,支持行级锁定,MySQL5.5成为默认数据库引 擎 Memory: 所有数据置于内存的存储引擎,拥有极高的插入...MySQL默认存储引擎方法 1.

    5.3K20
    领券