MyISAM和InnoDB区别
2016-12-06 17:47
176 查看
今天创建表结构的时候,发现项目中含有InnoDB和MyISAM类型的表,现总结两个引擎的差别如下。
1、MyISAM不支持事务,InnoDB支持事务处理。
2、MyISAM锁为全表锁,InnoDB支持行级锁,但是InnoDB的行级锁并不是绝对的,当SQL语句不能确定搜索的范围时(UPDATE `user_info` SET `user_desc` = '用户简介' WHERE `user_name` LIKE '%明%')同样会锁住全表。
3、InnoDB中不保存表数据的行数,MyISAM保存表数据的行数,所以SELECT COUNT(*) FROM `table_name`时MyISAM只要读出保存的行数即可,而InnoDB需要扫描一遍整个表。
4、MyISAM把数据保存成文件的形式,方便数据转移。
5、对于AUTO_INCREMENT类型的字段,InnoDB必须包含只有该字段的索引,但在MyISAM表中可以建立联合索引。
1、MyISAM不支持事务,InnoDB支持事务处理。
2、MyISAM锁为全表锁,InnoDB支持行级锁,但是InnoDB的行级锁并不是绝对的,当SQL语句不能确定搜索的范围时(UPDATE `user_info` SET `user_desc` = '用户简介' WHERE `user_name` LIKE '%明%')同样会锁住全表。
3、InnoDB中不保存表数据的行数,MyISAM保存表数据的行数,所以SELECT COUNT(*) FROM `table_name`时MyISAM只要读出保存的行数即可,而InnoDB需要扫描一遍整个表。
4、MyISAM把数据保存成文件的形式,方便数据转移。
5、对于AUTO_INCREMENT类型的字段,InnoDB必须包含只有该字段的索引,但在MyISAM表中可以建立联合索引。
相关文章推荐
- MyISAM和InnoDB区别
- Pango+Qt 列举windows系统字体
- 理解 RESTful WebService
- glPushMatrix()和glPopmatirx()
- mysql乐观锁总结和实践(含demo例子)
- java 多线程 解决资源冲突
- Ember 翻译——入门一:快速开始
- 右滑菜单SlidingMenu
- 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题
- Jersey框架三:Jersey对HTTPS的支持
- Nginx / LVS / HAProxy 负载均衡性能及优缺点探讨
- cmd下mysql 格式输出混乱
- 几个sql语句
- (三)Ubuntu14.04 安装CUDA
- 视觉研究的前世今生(下)王天珍(武汉理工大学)
- WinCE5.0 运行异常提示:0x80000002解决过程
- java.lang.NoClassDefFoundError: okio.Buffer 错误的解决方法
- 调试信息分级打印DIY
- javascript——Array
- 扩展BaseAdapter实现不存储列表项的ListView