当前位置: 首页 > news >正文

MySql 存储引擎 InnoDB 与 MyISAM 有什么区别

区别

  • 事务支持不同,InnoDB 支持事务处理,而 MyISAM 不支持。
  • 并发处理不同:InnoDB 支持行级锁,而 MyISAM 支持表级锁
  • 外键支持不同:InnoDB 支持外键约束,而 MyISAM 不支持
  • 性能上存在差异:MyISAM 的读取速度比 InnoDB 快,但是在高并发环境下, InnoDB 的性能更好。这是因为 InnoDB 支持行级锁和事务处理,而 MyISAM 不 支持。 所以,如果是读多写少的情况下,使用 MyISAM 引擎会更合适。
  • 数据安全不同:InnoDB 支持崩溃恢复和数据恢复,而 MyISAM 不支持。如果 MySQL 崩溃了或者发生意外故障,InnoDB 可以通过恢复日志来恢复数据。
     

如何选择?

MyISAM 和 InnoDB 是 MySQL数据库提供的两种存储引擎。两者的优劣可谓是各有千秋。InnoDB 会支持一些关系数据库的高级功能,如事务功能和行级锁,MVISAM不支持MyISAM 的性能更优,占用的存储空间少。所以,选择何种存储引警,视具体应用而定。

        (1)如果应用程序一定要使用事务,毫无疑问要选择InnoDB 引擎。但要注意,InnoDB的行级锁是有条件的。在 where 条件没有使用主键时,照样会锁全表。比如 DELETEFROMmytable 这样的删除语句。
        (2)如果应用程序对查询性能要求较高,就要使用MVISAM 了。MVISAM 索引和数据是分开的,而且其索引是压缩的,可以更好地利用内存。所以它的查询性能明显优于 InnoDB.压缩后的索引也能节约一些磁盘空间。

http://www.dtcms.com/a/80600.html

相关文章:

  • 知识库项目开场白
  • 【Linux】线程同步与生产消费者模型
  • Qt6.8.2中JavaScript调用WebAssembly的js文件<2>
  • Redis JSON 用id读取content总结(sendCommand())
  • VLLM专题(二十一)—分布式推理与服务
  • Unity URPShader:实现和PS一样的色相/饱和度调整参数效果
  • MarsCode AI实战:利用DeepSeek 快速搭建你的口语学习搭子
  • HttpClient通讯时间过久
  • 计算机网络技术服务管理基于Spring Boot-SSM
  • 前端流式输出实现详解:从原理到实践
  • 模型部署实战:PyTorch生产化指南
  • git clone项目报错fatal: fetch-pack: invalid index-pack output问题
  • 红日靶场(二)——个人笔记
  • TCP心跳消息
  • Multisim学习-01 特点安装使用和第一个仿真实例
  • 计算机组成原理 第六章 总线
  • 图像分割的mask有空洞怎么修补
  • tldr命令助记
  • Qt 控件概述 QLCDNumber 和 Progressbar
  • 手动集成sqlite的方法
  • 我开发的PDF转WORD免费工具
  • 【LangChain入门 4 Prompts组件】提示词追加示例 FewShotPromptTemplate和示例选择器ExampleSelector
  • Vision-R1:用 “冷启动 + 强化学习” 解锁多模态模型的推理能力
  • AI音乐创作原理:解锁创意与算法的完美结合
  • 【AVRCP】蓝牙AVRCP协议中的L2CAP互操作性要求深度解析
  • Servlet介绍(详细)
  • C# 事件机制详解:定义、订阅、触发与应用实践
  • 大数据学习(78)-spark streaming与flink
  • rust学习笔记16-206.反转链表(递归)
  • 用java代码开发一个安卓app,实现账号注册登录