InnoDB和MyIASM储存引擎的区别
来源:互联网 发布:小程序源码 百度网盘 编辑:程序博客网 时间:2024/06/10 21:51
InnoDB引擎
- InnoDB引擎提供了对数据库ACID事务的支持;
- 提供了行级锁和外键约束;
- 不支持FULLTEXT类型的索引(全文索引);
- 没有保存表的行数,因此当SELECT COUNT(*) FROM TABLE时需要扫描全表;
- InnoDB要求表必须要有主键,如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,则MySQL自动为InnoDB表生成一个隐含字段作为主键(这个字段长度为6个字节,类型为长整形)。
MyIASM引擎
- 不提供对数据库事务的支持,也不支持外键和行级锁;
- 使用表级锁,所以写操作需要锁定整个表;
- 支持FULLTEXT类型的索引(全文索引);
- MyIASM中存储了表的行数,所以当SELECT COUNT(*) FROM TABLE时只需要直接读取已经保存好的值而不需要进行全表扫描;
- 表不一定要有主键。
两种引擎的选择
选择InnoDB引擎:
1. 需要事务和外键支持;
2. 由于锁粒度更小,写操作一般不会锁定整个表,所以在高并发的情况下,使用InnoDB引擎会提升效率;但是使用行级锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,那么InnoDB同样会锁全表;(例如:模糊查询like ‘%a’)
3. 数据的大小。大尺寸的数据集趋向于选择InnoDB引擎,因为它支持事务处理和故障恢复。数据库的大小决定了故障恢复的时间长短,InnoDB可以利用事务日志进行数据恢复,这会比较快;
4. 主键查询在InnoDB引擎下也会相当快,但是如果主键太长也会导致性能问题。
选择MyIASM引擎:
1. 如果表的读操作远远多于写操作且不需要事务和外键支持;
参考:MySQL数据库引擎详解
阅读全文
0 0
- InnoDB和MyIASM储存引擎的区别
- mysql的常用引擎Innodb和MyIASM
- mysql的常用引擎:Innodb和MyIASM
- InnoDB和MYIASM区别
- Mysql引擎Innodb和MyIASM
- 数据库的两种引擎Innodb和MyIASM
- MySQL数据库Innodb引擎与MyIASM引擎的选择
- 浅谈mysql innodb myiasm 引擎
- MYISAM引擎和INNODB引擎的区别
- mysql储存引擎innodb
- MyISAM和InnoDB存储引擎的区别
- Mysql引擎 Innodb和MyISAM的区别
- 存储引擎 MyISAM 和 InnoDB 的区别
- myisam 和 innodb引擎的区别
- myisam和innodb引擎的区别
- Mysql引擎 Innodb和MyISAM的区别
- Mysql引擎 Innodb和MyISAM的区别
- MYISAM和InnoDB引擎的区别
- C++内存管理资料全收集(转)
- 常考linux指令之sed
- 关于Synthesis用异步朗读没有声音的
- linux信号捕获相关
- 点击edittext系统弹出软键盘,保证标题不动,输入框在输入法上面
- InnoDB和MyIASM储存引擎的区别
- 在VM虚拟机上搭建Hadoop2.7.3+Spark2.1.0完全分布式集群
- 持续集成工具---jenkins的安装与使用
- PCH was compiled with module cache......解决办法
- Problem L. Canonical duel XVII Open Cup named after E.V. Pankratiev||并查集
- PHP 设计模式概述
- Java代码规范
- 2T架构师教学视频打包分享
- 关于下载JDK历史版本的一个可行方案