当前位置: 首页 > 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.压缩后的索引也能节约一些磁盘空间。

相关文章:

  • 知识库项目开场白
  • 【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的方法
  • 警方通报“网约车司机偷拍女乘客”:已被行政拘留
  • 著名蒙古族音乐学者马•斯尔古愣逝世,享年86岁
  • 冷冰川谈黑白
  • 一生要出片的年轻人,买爆相机
  • 成就彼此,照亮世界:“中欧建交50周年论坛”在沪成功举行
  • 重庆大学通报本科生发14篇SCI论文:涉事学生及其父亲被处理