MySQL数据库引擎简介

本文介绍了MySQL中的五种存储引擎:InnoDB、MyISAM、MEMORY、MERGE和ARCHIVE,对比了它们的特点、应用场景及限制条件,帮助读者了解如何根据实际需求选择合适的存储引擎。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。同一个数据库中,不同的表可以有不同的引擎。
在这里插入图片描述

(1)InnoDB引擎
  • MySQL5.5.8及其之后的默认引擎
  • 支持事务(提交、回滚、崩溃恢复),表锁,行锁,外键
  • 支持非锁定读,即默认读取操作不会产生锁
  • 每张表的数据存储按照主键顺序存放,若没有指定主键,InnoDB会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,则MySQL自动为InnoDB表生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形
  • 表和索引存储在一个逻辑空间中
  • 不保存表数据的总记录数,执行select count( * ) from table时需要全表扫描

使用场景
被用在众多需要高性能、支持事务、外键等的大型数据库上

(2)MyISAM引擎
  • 拥有较高的插入、查询效率
  • 不支持事务、外键
  • 只支持表锁
  • 索引文件和数据文件分开存储
  • 用一个变量保存了整个表的记录总数,执行select count( * ) from table时只需要取出改值即可
  • 可以没有主键
  • 表锁机制降低了读写吞吐量,在CPU核数增加时,InnoDB的吞吐量更好

使用场景

OLAP:联机分析处理OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。

(3)MEMORY引擎
  • 将表中的数据存储到内存中,提高查询效率。如果数据库重启或者崩溃,表中的数据丢失。
  • 要求存储在Memory数据表里的数据用的是长度不变的格式,这意味着不能用BLOB和TEXT这样的长度可变的数据类型,VARCHAR是种长度可变的类型,但因为它在MySQL内部当做长度固定不变的CHAR类型,所以可以使用。
  • MySQL数据库中使用Memory存储引擎作为临时表来存放查询的中间结果集,如果中间结果集大于Memory存储引擎表的容量设置,又或者中间结果集含有text和blob字段,则MySQL数据库会把其转换到MyISAM存储引擎表而存放到磁盘中。因为MyISAM不会缓存数据文件,因此这时产生的临时表的性能对于查询会有损失。

使用场景

  • 数据量小,而且被非常频繁地访问
  • 数据是临时的,而且要求必须立即可用,那么就可以存放在内存表中
  • 存储在Memory表中的数据如突然丢失,不会对应用服务产生实质的负面影响
(4)MERGE引擎

MERGE存储引擎是一组MyISAM表组合,这些MyISAM表结构必须完全相同,尽管使用不如其它引擎突出,但是在某些情况下非常有用。说白了Merge表就是几个相同MyISAM表的聚合;Merge表中并没有数据,对Merge类型的表可以进行查询、更新、删除操作,这些操作实际上是对内部的MyISAM表进行操作。

使用场景

对于服务器日志这种信息,一般常用的存储策略是将数据分成很多表,每个名称与特定时间相关。例如:可以用12个相同的表来存储服务器的日志数据,每个表用对应各个月份的名字来命名。当有必要基于所有12个日志表的数据来生成报表时,这意味着需要编写、更新多表查询,以反映这些表中的信息。与其编写这些可能会出现错误的查询,不如将这些表合并起来使用一条查询,之后再删除Merge表而不影响原来的数据,删除Merge表只会删除掉Merge表的定义,对内部表没有任何影响。

(5)ARCHIVE引擎
  • Archive就是归档的意思,在归档之后很多的高级功能就不再支持了,仅支持最基本的插入和查询两种功能。在MySQL 5.1版前,Archive不支持索引,但是在MySQL 5.5以后的版本中就开始支持索引了。Archive拥有很好的压缩机制,使用zlib压缩库,在记录被请求时会实时压缩,所以它经常被用来当做仓库、日志信息使用。
  • 提供高速的插入和压缩功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值