MySQL存储引擎InnoDB、MyISAM和MEMORY介绍详解和区别
文章目录
- MySQL存储引擎InnoDB、MyISAM和MEMORY介绍详解和区别
- InnoDB存储引擎
- 特点
- 操作示例
- 创建InnoDB表
- 修改表引擎为InnoDB
- MyISAM存储引擎
- 特点
- 操作示例
- 创建MyISAM表
- 修改表引擎为MyISAM
- MEMORY存储引擎
- 特点
- 操作示例
- 创建MEMORY表
- 修改表引擎为MEMORY
- 总结
MySQL存储引擎InnoDB、MyISAM和MEMORY介绍详解和区别
MySQL是目前使用最广泛的关系型数据库,而存储引擎是MySQL中一个非常重要的概念。存储引擎决定了MySQL如何存储和处理数据,对于系统性能和功能的影响非常大。本文将对MySQL常见的几种存储引擎进行介绍和比较,帮助读者更好地选择适合自己应用场景的存储引擎。
InnoDB存储引擎
InnoDB是MySQL默认的存储引擎,也是当前MySQL中最受欢迎的存储引擎之一。它支持ACID事务、行级锁以及外键等功能,是面向OLTP(在线事务处理)应用的理想选择。
特点
- 支持多版本并发控制(MVCC),可以实现高度的并发性;
- 支持行级锁定,而不是表级锁定,这意味着多个用户可以同时在表中的不同行上执行写操作,从而提高并发性和吞吐量;
- 可靠性较高,支持事务、回滚和崩溃恢复;
- 支持外键约束;
- 内置诸如自动增加列、非聚集索引等常见的特性,适合处理大规模数据;
- 支持在线热备份(Hot Backup)。
操作示例
创建InnoDB表
CREATE TABLE `t_order` (`id` int(11) NOT NULL AUTO_INCREMENT,`user_id` int(11) DEFAULT NULL,`product_id` int(11) DEFAULT NULL,`amount` decimal(10,2) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8mb4;
修改表引擎为InnoDB
ALTER TABLE `t_order` ENGINE=InnoDB;
MyISAM存储引擎
MyISAM是MySQL中最古老的存储引擎之一,它使用表级锁定和非事务安全机制来实现数据的读写。虽然MyISAM在某些场景下性能很好,但在高并发和大量写操作的应用中,容易出现表锁定和数据丢失等问题,因此不再推荐使用。
特点
- 不支持事务;
- 表级锁定,无法处理高并发场景;
- 索引和数据分离存储,适合查询操作;
- 支持全文检索功能。
操作示例
创建MyISAM表
CREATE TABLE `t_user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(45) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
修改表引擎为MyISAM
ALTER TABLE `t_user` ENGINE=MyISAM;
MEMORY存储引擎
MEMORY存储引擎使用内存作为数据存储介质,因此读写速度非常快,适合处理查询频繁但数据量不大的应用场景。但是,由于数据存储在内存中,当MySQL重启后内存中的数据将会丢失,因此不适用于需要持久化保存数据的应用。
特点
- 数据存储在内存中,读写速度非常快;
- 不支持事务,也不支持外键、自动增加列等功能;
- 数据存储在内存中,容易受到内存限制;
- 支持HASH和BTREE两种索引类型。
操作示例
创建MEMORY表
CREATE TABLE `t_log` (`id` int(11) NOT NULL AUTO_INCREMENT,`message` varchar(200) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=MEMORY DEFAULT CHARSET=utf8mb4;
修改表引擎为MEMORY
ALTER TABLE `t_log` ENGINE=MEMORY;
总结
不同的存储引擎有不同的特点和适用场景,我们可以根据实际需求选择最合适的存储引擎。一般来说,应该优先考虑使用InnoDB存储引擎,因为它支持事务、行级锁定等高级功能,能够保证数据的一致性和可靠性。如果应用场景中查询操作比较频繁而写操作比较少,可以考虑使用MyISAM存储引擎;如果应用场景中数据量不大而且需要快速查询,可以考虑使用MEMORY存储引擎。
MySQL存储引擎InnoDB、MyISAM和MEMORY介绍详解和区别相关推荐
- 常用Mysql存储引擎--InnoDB和MyISAM简单总结
常用Mysql存储引擎--InnoDB和MyISAM简单总结 2013-04-19 10:21:52| 分类: CCST|举报|字号 订阅 MySQL服务器采用了模块化风格,各部分之间保持相对独立, ...
- MySQL存储引擎InnoDB和MyISAM的区别
文章目录 前言 一.MySQL 引擎 二.MyISAM和InnoDB特点 三.InnoDB和MyISAM的区别 总结 前言 面试经常会问到MySQL存储引擎的相关内容.常见的MySQL存储引擎有MyI ...
- MySQL存储引擎InnoDB,MyISAM
MySQL存储引擎InnoDB,MyISAM 1.区别: (1)InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQ ...
- MySQL存储引擎中MyISAM和InnoDB区别
转载自 MySQL存储引擎中MyISAM和InnoDB区别 MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应 ...
- mysql存储引擎InnoDB与MyISAM的区别
mysql存储引擎InnoDB与MyISAM的区别 众所周知,mysql之前的存储引擎是MyISAM,在5.6版本之后默认的存储引擎是InnoDB,那么两个存储引擎有什么区别? 一.MyISAM 存储 ...
- mysql dba系统学习(21)mysql存储引擎InnoDB
mysql存储引擎InnoDB 1,主体系结构: 默认7个后台线程,4个io thread(insert buffer.log.read.write),1个master thread(优先级最高),1 ...
- Mysql存储引擎Innodb的读写锁、行级锁
读写锁 Mysql存储引擎Innodb在处理并发读或者写的时候,通过两种类型的锁来解决并发问题,这两种锁通常称为共享锁和排他锁,也叫读锁和写锁. 读锁是共享的,即多个客户端可以同时读取同一资源. 写锁 ...
- mysql 启用myisam_MySQL各存储引擎(INNODB,MyISAM等)的区别及其启动方法
存储引擎是什么? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能 ...
- MySQL存储引擎之Myisam和Innodb总结性梳理
Mysql有两种常用的存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比 MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名 ...
最新文章
- 汇编语言 masm常见报错原因
- 移动端相关 em rem px 区别和关联
- debian9为什么默认是pip2_VirtualBox内刚刚安装完Debian9系统,也无法设置共享文件夹。解决的方法就是安装VirtualBox客户端增强包。...
- 第一次请领导喝酒,五百左右的白酒有哪些推荐?
- 新版音乐网站系统源码Sourcecode
- 全国计算机考试一级在线模拟考试系统,全国计算机等级考试模拟系统全国计算机等级考试一级模拟试题和答案.doc...
- Word文档格式的解码分析
- 自定义快捷键整理 - Windows
- 你可以不信元宇宙,但请不要错过硬件光线追踪技术的先机
- html二级网页命名规范,(网页)设计命名规范
- 给英语单词编故事的三个方法
- 视频监控系统中流媒体服务器的主要功能,流媒体存储服务器在视频监控中被正确使用?它有哪些显著的优点?...
- 抖音大咖如何寻找广告主?这三种途径值得了解
- 利率风险结构和期限结构
- 计算机台式机硬盘,台式机装硬盘怎么安装_台式电脑硬盘安装教程-win7之家
- _bzoj1003 [ZJOI2006]物流运输【预处理】
- linux mount详解
- 初入Linux——LVM逻辑卷
- excel常用汇总计算公式
- 仿Ios下拉菜单,android Spinner效果(美团下拉效果)
热门文章
- PB 利用timer()函数实现定时将数据窗口以excel文档保存至指定地方
- 网站换服务器加cdn,如何给服务器添加CDN防御?
- 计算机茶包装设计论文,创意设计论文茶叶包装设计论文
- [201903][Spring Boot 编程思想][核心篇][小马哥][著]
- Linux: 复制文件夹到上一级目录
- JAVA计算机毕业设计长庚游戏网站Mybatis+源码+数据库+lw文档+系统+调试部署
- 用一个例子告诉你 什么是Scala中的隐式转换
- Goby 漏洞更新 | 瑞友天翼应用虚拟化系统 index.php 文件远程代码执行漏洞
- IDEA中创建maven项目详细步骤,很清晰
- “互联网+”:工业革命的需求与变革