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

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.kler.cn/a/594923.html

相关文章:

  • 车载以太网网络测试-18【传输层-DOIP协议-1】
  • 根据模板将 Exce 明细数据批量生成 PPT 文档|邮件合并
  • 搭建React简单项目
  • PCDN 在去中心化互联网中的角色
  • 前端知识-CSS(二)
  • python自动化脚本编写-处理文件、数据分析
  • Vue.js 中的 Memoization:提升性能的缓存技术
  • MySQL 创建用户,建库,建表
  • 【Qt】信号signal是单向的
  • 【数学建模】灰色关联分析模型详解与应用
  • Nginx之Basic Auth认证
  • 算法刷题整理合集(五)
  • 飞算JavaAI:AI辅助编程工具在复杂业务场景中的应用实践
  • Kafka分区分配策略详解
  • Linux(九)fork复制进程与写时拷贝技术
  • ES--Mapping之日期时间类型
  • MATLAB神经网络优化1000个案例算法汇总
  • GaussDB 资源管理指南:冻结、解冻、释放与生命周期控制
  • Rasa(非Pro)开源意图识别聊天机器人本地部署及调试,从零到一构建学习
  • Oracle+11g+笔记(11)-数据库的安全管理