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

Innodb与Myisam引擎的区别与应用场景

1. 区别:

(1)事务处理:

MyISAM是非事务安全型的,而InnoDB是事务安全型的(支持事务处理等高级处理);

(2)锁机制不同:

MyISAM是表级锁,而InnoDB是行级锁;

(3)select ,update ,insert ,delete 操作:

MyISAM:如果执行大量的SELECT,MyISAM是更好的选择
InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表

(4)查询表的行数不同:

MyISAM:select count(*) from table,MyISAM只要简单的读出保存好的行数,注意的是,当count(*)语句包含   where条件时,两种表的操作是一样的
InnoDB : InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行
(5)外键支持:
mysiam表不支持外键,而InnoDB支持

2. 为什么MyISAM会比Innodb 的查询速度快。

INNODB在做SELECT的时候,要维护的东西比MYISAM引擎多很多;
1)数据块,INNODB要缓存,MYISAM只缓存索引块,  这中间还有换进换出的减少; 
2)innodb寻址要映射到块,再到行,MYISAM 记录的直接是文件的OFFSET,定位比INNODB要快
3)INNODB还需要维护MVCC一致;虽然你的场景没有,但他还是需要去检查和维护
MVCC ( Multi-Version Concurrency Control )多版本并发控制 
3. 应用场景

MyISAM适合:(1)做很多count 的计算;(2)插入不频繁,查询非常频繁;(3)没有事务。

InnoDB适合:(1)可靠性要求比较高,或者要求事务;(2)表更新和查询都相当的频繁,并且行锁定的机会比较大的情况。

 

转载于:https://www.cnblogs.com/changna1314/p/6878900.html

相关文章:

  • Linux中有两类函数库,分别是静态库和动态库
  • 记忆模糊的知识点5-22
  • 深入说明HDR技术
  • 免费产品体验码已发放完毕,实物礼品已备好?
  • wdcp服务器/虚拟主机管理系统1.1发布
  • VMware ESXi 和 VMware Server 有什么区别
  • mybatis-spring从1.1升级到1.2所带来的dao层级的编写问题
  • 802.11无线网络部署方案对比分析
  • RHEL中FQDN解析顺序。
  • @Autowired标签与 @Resource标签 的区别
  • 《唐之韵》解说词及古诗词
  • Java导出freemarker实现下载word文档格式功能
  • Insus Meta Utility
  • 什么是多态?为什么用多态?有什么好处?[转]
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 2017前端实习生面试总结
  • Intervention/image 图片处理扩展包的安装和使用
  • Java基本数据类型之Number
  • js中forEach回调同异步问题
  • Mysql数据库的条件查询语句
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • STAR法则
  • 构造函数(constructor)与原型链(prototype)关系
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 聊聊redis的数据结构的应用
  • 想写好前端,先练好内功
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​Spring Boot 分片上传文件
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​批处理文件中的errorlevel用法
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $refs 、$nextTic、动态组件、name的使用
  • ()、[]、{}、(())、[[]]命令替换
  • (3)(3.5) 遥测无线电区域条例
  • (HAL库版)freeRTOS移植STMF103
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (六)c52学习之旅-独立按键
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET Framework杂记
  • .NET 指南:抽象化实现的基类
  • @SentinelResource详解
  • @WebService和@WebMethod注解的用法
  • [ SNOI 2013 ] Quare
  • [20140403]查询是否产生日志
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [ARC066F]Contest with Drinks Hard
  • [ARM]ldr 和 adr 伪指令的区别
  • [C/C++]数据结构 堆的详解