1、MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。

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

3、对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。

4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。

两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁.而MyISAM不支持.所以MyISAM往往就容易被人认为只适合在小项目中使用。

1、读多写少的项目,而MyISAM的读性能是比Innodb强不少的。

2、MyISAM的索引和数据是分开的,并且索引是有压缩的,内存使用率就对应提高了不少。能加载更多索引,而Innodb是索引和数据是紧密捆绑的,没有使用压缩从而会造成Innodb比MyISAM体积庞大不小。

3、从我接触的应用逻辑来说,select count(*) 和order by 是最频繁的,大概能占了整个sql总语句的60%以上的操作,而这种操作Innodb其实也是会锁表的,很多人以为Innodb是行级锁,那个只是where对它主键是有效,非主键的都会锁全表的。

4、如果和MyISAM比insert写操作的话,Innodb还达不到MyISAM的写性能,如果是针对基于索引的update操作,虽然MyISAM可能会逊色Innodb,但是那么高并发的写,从库能否追的上也是一个问题,还不如通过多实例分库分表架构来解决。

最新文章

  1. MySQL插入语句解析
  2. Attribute和自定义Property
  3. 安装软件时出现error 1337 【添加权限】
  4. C++/C互相调用
  5. UISearchBar改变搜索框的高度
  6. Rhel6-keepalived+lvs配置文档
  7. 在一台电脑访问另一台电脑的mysql数据库
  8. 两阶段提交及JTA
  9. .NET中可空值类型实现原理
  10. 403 forbidden 错误解决方案
  11. 【Netty】(8)---理解ChannelPipeline
  12. MyDAL - 引用类型对象 .DeepClone() 深度克隆[深度复制] 工具 使用
  13. js函数前面的+,!
  14. js判断输入的input内容是否为数字
  15. ssh 多次登录禁用账号
  16. Maven项目打包成可执行Jar文件
  17. python3基础之文件对象操作
  18. PHP策略模式2
  19. openwrt多wan限上下行速脚本,基于qosv4,imq模块替换成ifb模块[ZT]
  20. Realtime Rendering 5

热门文章

  1. Python||NameError: name 'reload' is not defined
  2. Point Estimate|unbiased estimator|Confidence-Interval Estimate
  3. 探索真实事物的虚拟再现——微软亚洲研究院SIGGRAPH Asia 2014精彩入选论文赏析
  4. 从广义线性模型(GLM)理解逻辑回归
  5. 上传第三方jar包到nexus
  6. Tuning xgboost in R:Part 1
  7. python中字典dic详解-创建,遍历和排序
  8. Louis的「每周语文」
  9. Ftp Centos · GitBook
  10. 初识SpringAOP