首页 > 其他分享 >innodb引擎,myisam引擎,memory引擎区别【最新版】

innodb引擎,myisam引擎,memory引擎区别【最新版】

时间:2022-11-08 16:55:43浏览次数:37  
标签:存储 索引 引擎 innodb myisam memory 最新版

innodb引擎

  • .frm 表结构文件 .idb 数据和索引文件
  • innodb 引擎执行 count(*) 的时候,需要把数据一行一行地从引擎里面读出来,累积计数
  • 事务型数据库首选,支持事务ACID
  • 支持行级锁,最大程度上支持并发,类似Oracle的一致性读、多用户并发
  • innodb是为处理巨大数据量的最大性能设计,innodb存储引擎完全与MySQL服务器整合,innodb存储引擎为在主内存中缓存数据和索引而维持自己的缓冲池
  • innodb支持外键完整性约束,存储表中的数据时,每张表的存储都按照主键顺序存放,如果没有显式在表定义时指定主键,innodb会为每一行生成一个6字节的rowid作为主键
  • innodb支持崩溃数据自修复,innodb储存引擎中就是依靠redo log来保证的,当数据库异常崩溃后,数据库重启时会根据redo log进行数据恢复,保证数据库恢复到崩溃前的状态

myisam引擎

  • .frm 表结构文件 .myd 数据文件 .myi 索引文件
  • myisam引擎执行 count(*)把一个表的总行数存在了磁盘上,直接返回这个数,效率很高
  • 不支持事务,对事务有要求的业务场景不能使用
  • 支持表级锁,让锁的实现成本很小,降低了其并发性能
  • 不仅会在写入的时候阻塞读取,还会在读取的时候阻塞写入 ,但读本身并不会阻塞另外的读
  • 只会缓存索引:myisam可以通过key_buffer缓存,提高访问性能减少磁盘IO,但是这个缓冲区只会缓存索引,不会缓存数据
  • 适用于不需要事物支持,并发相对较低(锁机制问题),数据修改相对较少(阻塞问题),以读为主的场景

memory引擎

memory引擎是mysql中一类特殊的存储引擎,使用引擎在内存中的内容来创建表,所有数据存放在内存中
  • memory存储引擎的表实际对应一个磁盘文件,该文件的文件名与表名相同,.frm类型;该文件中只存储表结构,数据文件存储在文件中
  • memory引擎默认使用hash索引,速度比b+树索引快,如果想用b+树索引可在创建索引时指定
  • memory引擎是把数据存到内存中,如果内存出现异常就会影响数据,如果重启或关机,那么所有数据都会消失

总结

  • innodb引擎: 需要对事务的完整性要求比较高(如银行|订单|支付),要实现并发控制(如售票)
  • myisam引擎:主要用于插入记录和读取数据(如用户登录日志)
  • memory引擎:需要很快的读写速度,对数据的安全性要求较低

标签:存储,索引,引擎,innodb,myisam,memory,最新版
From: https://www.cnblogs.com/wangsky/p/16870242.html

相关文章

  • Activiti7工作流引擎
    目录参考资料介绍详细说明Activiti7使用步骤参考资料太多折叠了基本认知https://www.bilibili.com/video/BV1Wf4y1879C?p=6&vd_source=30a65f4c49a9b7fc7ffd31......
  • 63.innodb_force_recovery 参数
    innodb_force_recovery参数影响了整个innodb_存储引恢复的状况,该参数默认值是0,代表当发生需要恢复时,进行所有的恢复操作,当不能进行有效恢复时,如果数据页发生corruption......
  • ClickHouse 表引擎简介(一)
    1、表引擎介绍ClickHouse表引擎是ClickHouse的一大特色。可以说, 表引擎决定了如何存储表的数据。包括:数据的存储方式和位置,写到哪里以及从哪里读取数据。支持哪些查询......
  • AI 模型编译器 MegCC 开源,解决推理引擎体积问题
    目前社区已经有多个移动端深度学习推理框架,如:NCNN、MNN...这些推理引擎都给社区的用户带来了在移动端上部署深度学习非常多的便利,但是他们也都有一个共性问题:随着不断地迭......
  • 网站在线客服系统源码 | 全渠道在线客服代码下载 (最新版支持外贸商城/H5/小程序/公众
    gofly.v1kf.com是一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载z......
  • 最新版Jenkins(jdk11)-----JAVA项目使用低版本jdk编译的解决办法
    背景开源Devops工具Jenkins宣布:从6月28日发布的Jenkins2.357和即将发布的9月LTS版本开始,Jenkins最低需要Java11。所以,你懂得,很坑,项目只是jdk1.8解决......
  • Mysql InnoDB Redo log
    一丶什么是redoinnodb是以也为单位来管理存储空间的,增删改查的本质都是在访问页面,在innodb真正访问页面之前,需要将其加载到内存中的bufferpool中之后才可以访问,但是在聊......
  • 升级node最新版本18.x .Error: error:0308010C
    Buildingforproduction...Error:error:0308010C:digitalenveloperoutines::unsupported先执行以下命令:windows:setNODE_OPTIONS=--openssl-legacy-providerlinux......
  • 深入理解Java内存区域(最新版面试题)
    1、什么是JVM?JVM(JavaVirtualMachine)是用于运行Java字节码的虚拟机,包括一套字节码指令集、一组程序寄存器、一个虚拟机栈、一个虚拟机堆、一个方法区和一个垃圾回收器。JVM......
  • CorelDRAW2023最新版下载及功能讲解
    CorelDRAW2023最新版,支持WIN10系统(64位)转载于:​​https://www.sohu.com/a/602955432_120864439​​coreldraw是一款深受设计师们喜爱的制图软件,它能够帮助设计师绘制出许......