mysql存储引擎之间的区别有哪些

mysql存储引擎之间的区别有哪些

mysql存储引擎之间的区别:1、MyISAM不支持事务,不支持行级锁,而InnoDB则支持事务和行级锁;2、InnoDB支持MVCC,支持外键,而MyISAM不支持MVCC和外键。

千万级数据并发如何处理?进入学习

本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

mysql存储引擎之间的区别

  • InnoDB支持事物,而MyISAM不支持事物

  • InnoDB支持行级锁,而MyISAM支持表级锁

  • InnoDB支持MVCC, 而MyISAM不支持

  • InnoDB支持外键,而MyISAM不支持

mysql中myisam,innodb和memory三个存储引擎

1、区别:

1) MyISAM管理非事务表。提供高速存储和检索,以及全文搜索能力。MyISAM在所有MySQL配置里被支持,是默认的存储引擎,除非配置MySQL默认使用另外一个引擎。

2)MEMORY存储引擎提供“内存中”表。MERGE存储引擎允许集合将被处理同样的MyISAM表作为一个单独的表。就像MyISAM一样,MEMORY和MERGE存储引擎处理非事务表,这两个引擎也都被默认包含在MySQL中。

注释:MEMORY存储引擎正式地被确定为HEAP引擎。

3)InnoDB和存储引擎提供事务安全表,默认被包括在所 有MySQL 5.1二进制分发版里,可以按照喜好通过配置MySQL来允许或禁止任一引擎。

2、功能点简介

1)MyISAM存储引擎

MyISAM存储引擎不支持事务,不支持行级锁,只支持并发插入的表锁,主要用于高负载的select。

myisam类型的表支持三种不同的存储结构:静态型、动态型、压缩型。

(1)静态型:就是定义的表列的大小是固定(即不含有:xblob、xtext、varchar等长度可变的数据类型),这样mysql就会自动使用静态myisam格式。

使用静态格式的表的性能比较高,因为在维护和访问的时候以预定格式存储数据时需要的开销很低。但是这高性能是有空间换来的,因为在定义的时候是固定的,所以不管列中的值有多大,都会以最大值为准,占据了整个空间。

(2)动态型:如果列(即使只有一列)定义为动态的(xblob, xtext, varchar等数据类型),这时myisam就自动使用动态型,虽然动态型的表占用了比静态型表较少的空间,但带来了性能的降低,因为如果某个字段的内容发生改变则其位置很可能需要移动,这样就会导致碎片的产生。随着数据变化的怎多,碎片就会增加,数据访问性能就会相应的降低。

(3)压缩型:如果在这个数据库中创建的是在整个生命周期内只读的表,则这种情况就是用myisam的压缩型表来减少空间的占用。

2)MEMORY存储引擎:

(1)memory存储引擎相比前面的一些存储引擎,有点不一样,其使用存储在内从中的数据来创建表,而且所有的数据也都存储在内存中。

(2)每个基于memory存储引擎的表实际对应一个磁盘文件,该文件的文件名和表名是相同的,类型为.frm。该文件只存储表的结构,而其数据文件,都是存储在内存中,这样有利于对数据的快速处理,提高整个表的处理能力。

(3)memory存储引擎默认使用哈希(HASH)索引,其速度比使用B-+Tree型要快,如果读者希望使用B树型,则在创建的时候可以引用。

(4)memory存储引擎文件数据都存储在内存中,如果mysqld进程发生异常,重启或关闭机器这些数据都会消失。所以memory存储引擎中的表的生命周期很短,一般只使用一次。

3)innoDB存储引擎:

(1) innodb存储引擎该mysql表提供了事务,回滚以及系统崩溃修复能力和多版本迸发控制的事务的安全。

(2)innodb支持自增长列(auto_increment),自增长列的值不能为空,如果在使用的时候为空的话怎会进行自动存现有的值开始增值,如果有但是比现在的还大,则就保存这个值。

(3)innodb存储引擎支持外键(foreign key) ,外键所在的表称为子表而所依赖的表称为父表。

(4)innodb存储引擎最重要的是支持事务,以及事务相关联功能。

(5)innodb存储引擎支持mvcc的行级锁。

感谢各位的阅读,以上就是“mysql存储引擎之间的区别有哪些”的内容了,经过本文的学习后,相信大家对mysql存储引擎之间的区别有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

文章标题:mysql存储引擎之间的区别有哪些,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/21362

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年8月30日 上午12:00
下一篇 2022年8月30日 下午4:27

相关推荐

  • MySQL占用内存过大如何解决

    前言 对于部分小资玩家来说,服务器数量和内存往往是很有限的,像我个人的服务器配置就是2核4G5M。 4G内存对于Java玩家来说,真的不大,开几个中间件+自己的微服务真的还蛮挤的,然后又摊上MySQL这个大冤种。我本机上的MySQL仅仅只占几M内存(虽然我不怎么用,但是本机MySQL确实是开着的):…

    2022年9月16日
    1.2K00
  • 如何进行越南APT攻击样本的深度分析

    一、前言 APT已经成为了安全领域热门的话题。 Eleven Paths旗下Innovación y laboratorio 4月发表《Docless Vietnam APT》报告: 上述信息表述,我们侦测到一些恶意邮件发送到属于越南政府的邮箱,这封越南语邮件的日期是2019年3月13号。这封邮件…

    2022年9月21日
    79100
  • mysql如何统计查询结果

    在mysql中,可以使用COUNT()函数来统计查询结果;该函数用于统计查询结果的行数,返回表中符合特定条件的记录行数。COUNT()函数有三种语法:1、“COUNT(*)”,返回总行数,包含NULL和非NULL值的行;2、“COUNT(字段名)”,返回不包含NULL值的行数,会忽略空值行;3、“C…

    2022年9月22日
    1.6K00
  • vlookup函数如何使用

    vlookup函数使用方法 vlookup 的作用: vlookup 用于查找指定值所对应的另一个值。例如:查找某件产品的价格,某个同学的某科成绩等。 vlookup 函数表示: =vlookup(要查找的值,查找区域,返回值所在列号,精确匹配或近似匹配) 参数说明: 1、要查找的值:可以引用单元格…

    2022年9月21日
    74600
  • Redis常见分布锁的原理是什么和怎么实现

    常见的分布式锁的实现如下图: 基于数据库 悲观锁 悲观锁(Pessimistic Lock)顾名思义为很悲观的锁,每次在拿数据的时候都会上锁。这样别人想拿数据就被挡住,直到悲观锁被释放,悲观锁中的共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程,但是在效率方面,处理加锁的机制…

    2022年8月30日
    63900
  • glidecache文件夹有什么作用

    glidecache是一个图片缓存文件夹;该文件夹是可以删除的,但是同时会删除设备中的缓存图片,并且一旦删除无法恢复,缓存是cpu的一部分,存在于cpu中,并且cpu存取数据的速度非常快,而内存的速度就会慢很多,缓存是为了解决CPU速度和内存速度的速度差异问题。 本教程操作环境:windows10系…

    2022年9月8日
    99500
  • windows你需要权限来执行此操作删除不了怎么解决

    解决方法: 1、首先右键存在问题的文件夹,打开“属性” 2、接着进入上方“安全”并点击“编辑” 3、然后选中我们正在使用的用户。 (如果没有就添加一个) 4、最后在下面全部勾选“允许”并确定保存即可。 关于“windows你需要权限来执行此操作删除不了怎么解决”这篇文章的内容就介绍到这里,感谢各位的…

    2022年8月31日
    1.7K00
  • roaming文件夹有什么作用

    roaming文件夹是用于存放一些程序运行后产生的数据文件的;该文件夹是Windows存放一些使用程序后产生的数据文件,如软件听音乐,登入的号码等而缓存的一些数据,若删除该文件夹不会对系统产生什么影响,但是会对软件造成一定的影响,建议不要删除。 本教程操作环境:windows10系统、DELL G3…

    2022年9月8日
    1.7K00
  • frida如何抓apk网络包

    一 . 埋头分析踩坑路 从系统的角度去寻找hook点,而不是为了抓包而抓包。 1.okhttp调用流程 public static final MediaType JSON= MediaType.get(“application/json; charset=utf-8”);OkHttpClient …

    2022年9月8日
    1.4K00
  • cad块名称如何修改

    cad块名称修改方法: 1、首先打开CAD软件。 2、然后点击上面任务选项栏中的“格式”。 3、然后点击菜单中的“重命名”。 4、最后点击左侧的“块”然后编辑右侧的名字即可。 以上就是“cad块名称如何修改”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家…

    2022年8月30日
    1.1K00
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部