首页 > 数据库 >聊聊如何理解MySQL引擎--Innodb和MyISAM和Memory

聊聊如何理解MySQL引擎--Innodb和MyISAM和Memory

时间:2024-06-06 17:33:40浏览次数:15  
标签:-- 占用 外键 图书馆 引擎 Innodb MyISAM Memory

mysql的常见的引擎有许多比如,MYISAM、Innodb、Memory、MERGE。可以通过

mysql> show engines; 

查看数据库提供的引擎:

我们今天聊聊如何理解Innodb和MyISAM,Memory,这是面试时会问的问题。

首先是Innodb:

先上概念:

Innodb:行级锁,提供了具有提交、回滚和崩溃回复能力的事务安全,支持自动增长列,支持 外键约束,并发能力强,占用空间是MYISAM的2.5倍,处理效率相对会差一些。

如何理解里面的行级锁、事务、外键呢

举个通俗的例子

现在想象另一个图书馆,这个图书馆的每个书架都有一个小门,而且图书馆有一个先进的借书系统。这个系统允许读者借书和还书(支持事务),并且确保没有人能同时借走同一本书(支持外键)。这个图书馆的每个书架的小门就是InnoDB的行级锁,这意味着即使有人正在阅读某本书,其他人仍然可以进入其他书架阅读。这个图书馆的空间占用更大,因为它需要更多的门和更复杂的借书系统,但是它提供了更好的服务和更高的并发能力。

 然后是MyISAM

先上概念:

MYISAM:全表锁,拥有较高的执行速度,不支持事务,不支持外键,并发性能差,占用空间 相对较小,对事务完整性没有要求,以select、insert为主的应用基本上可以使用这引擎

 如何理解呢,可以对比Innodb

想象一下你有一个图书馆,这个图书馆的书架上摆满了书,但是图书馆只有一个大门。这个大门就是MYISAM的全表锁。当有人想进入图书馆阅读书籍时,他们必须通过这个大门。如果有人正在图书馆内,其他人就得在外面等待,直到图书馆空出来。这个图书馆的管理员(数据库)可以很快地添加新书(插入数据)和找出书籍(查询数据),但是它不提供借书服务(不支持事务),也不检查是否有人已经借了这本书(不支持外键)。这个图书馆的空间占用相对较小,因为它只需要一个大门和一些书架。

最后是Memory

先上概念:

Memory:全表锁,存储在内容中,速度快,但会占用和数据量成正比的内存空间且数据在 mysql重启时会丢失,默认使用HASH索引,检索效率非常高,但不适用于精确查找,主要用于 那些内容变化不频繁的代码表

理解 :

想象一个电子图书馆,所有的书籍都是以电子形式存储在内存中的。这个图书馆的访问速度非常快,因为所有的书籍都在内存中,就像直接从电脑的RAM中读取数据一样。但是,如果图书馆的电源被切断(MySQL重启),所有的书籍都会消失(数据会丢失)。这个图书馆适合那些不需要长期保存的书籍,比如临时的参考资料或者经常查阅的法律条文。

 通过这些例子,我们可以看到每种存储引擎的特点和适用场景。选择哪种存储引擎取决于我们的应用需求,比如事务支持、并发能力、空间占用和数据持久性等。

标签:--,占用,外键,图书馆,引擎,Innodb,MyISAM,Memory
From: https://blog.csdn.net/Yosoo_/article/details/139504196

相关文章

  • 使用AppJail配置网络并创建tiny jail(未成功)
    创建tinyjail成功了,但是网络配置这块,jail里只能ping通外面,而无法pkg更新软件。本文章是这篇文章Jail管理器AppJail的使用@FreeBSD-CSDN博客的网络篇。首先host主机配置pf防火墙参考这里:PacketFilter-AppJailHandbook 在/etc/rc.conf文件中添加pf_enable="YES"pflog_......
  • 轻松实现文件批量迁移至多个位置!
    在数字信息化办公中,文件如同知识的使者,穿梭于各个角落,或聚集在特定的文件夹。随着工作的深入和资料的积累,我们经常需要将这些文件进行批量迁移,以实现更好的组织和管理。不过,传统的文件复制方式往往耗时费力,所以小编今天就来帮助大家轻松实现轻松实现文件批量迁移至多个位置。让......
  • 百兆网口和千兆网口指示含义的区别
    网口指示灯状态:千兆网口和百兆网口灯的含义不同千兆网口:根据核心板提供给ETH0_LED1、ETH0_LED1的信号当与其连接的是百兆网口PHY芯片的设备时,LED1(绿灯)亮,LED2(黄灯)不亮当有数据发送或者接收时,闪烁;当与其连接的是千兆网口PHY芯片的设备时,LED2(黄灯)亮,LED1(绿灯)不亮,当有数据发送或......
  • python 基础习题5 --- 海龟画图系列
    1.  画出一个半径为100的圆,背景色和画笔颜色自己定义,如下图:importturtleastt.speed(10)t.bgcolor("black")t.pencolor("red")t.pensize(2)radius=100t.penup()t.goto(0,-100)t.down()t.circle(radius)t.penup()t.done()答案 2. 用循环画出五个同......
  • Jail管理器AppJail的使用@FreeBSD
    Jail的简介Jail是FreeBSD操作系统中一个功能强大的安全机制,自FreeBSD4.X版本起便投入使用,并且随着系统的发展,其功能、效率、稳定性和安全性得到了持续的强化。Jail基于chroot的概念,通过更改一系列程序的根目录,为程序提供了一个隔离的安全环境,将其与系统的其他部分完全分隔......
  • 【忻州师范学院毕业论文】基于Java的家政公司网站的设计与实现
    注:仅展示部分文档内容和系统截图,需要完整的视频、代码、文章和安装调试环境请私信up主。1.1 开发背景及研究意义随着我国人口的增长、人们生活水平的提高,居民社会需求也随之增多,市场经济的快速发展和信息化水平的不断提高,人们的工作节奏也不断加快,许多人们没有闲暇的时间和......
  • 文件加密软件排行榜前五名|好用的五款文件加密软件分享
    你的公司是否存在这些问题:  数据泄露事件常有发生,数据安全的重要性日益凸显,而文件加密软件则是保护数据安全的重要工具。市场上存在众多文件加密软件,每款都有其独特的特点和优势。 本文将为您分享五款好用的文件加密软件,帮助您了解并选择适合自己的加密工......
  • 实时监控电脑屏幕软件有哪些?(珍藏篇)
    在当今的数字化工作环境中,实时监控电脑屏幕软件是企业管理、远程协助、教育监控等领域不可或缺的工具。这些软件能够帮助管理者了解员工的工作状态、提升团队协作效率、确保数据安全,同时在家庭教育和远程技术支持中也有广泛应用。 以下是精选的几款实时监控电脑屏幕软......
  • 单位企业是如何禁用USB接口的(公司禁止USB接口的三大方法)
    在当前信息化时代,单位企业对于数据安全的重视程度日益增加,尤其是防止通过USB接口导致的数据泄露和恶意软件传播。 为了构建一个更加安全的办公环境,许多企业采取措施禁用USB接口。以下是公司禁止USB接口的三大常用方法:1.部署专业终端安全管理软件对于追求更高效和精细......
  • 【栈】736. Lisp 语法解析
    本文涉及知识点栈LeetCode736.Lisp语法解析给你一个类似Lisp语句的字符串表达式expression,求出其计算结果。表达式语法如下所示:表达式可以为整数,let表达式,add表达式,mult表达式,或赋值的变量。表达式的结果总是一个整数。(整数可以是正整数、负整数、0)let表......