稍微整理下mysql中存储引擎innodb和myisam引擎的区别;
mysql的默认数据存储引擎是myisam,所以我们先提提myisam引擎的特点
1.myisam
MyISAM存储引擎是基于ISAM 存储引擎发展起来的,它解决了ISAM 的很多不足,同时它还增加了很多有用的扩展。
它不支持事务,MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快
提供高速存储和检索,支持全文索引,不支持外键约束
表锁设计
如果执行大量的SELECT,MyISAM是更好的选择
它的缓冲池只缓冲索引文件,不缓冲数据文件
占用资源比较少
所以适合读业务比较多的生产环境
2.innodb
支持事务,外键等高级数据库功能,不支持全文索引
行级锁定
支持多版本的并发控制(MVCC)来获得高并发性
可以缓存数据和索引,高效的缓存特性
支持分区,表空间.
服务器资源开销大
提供了插入缓冲、二次写、自适应哈希索引、预读等高性能和高可用的功能
所以适合读写业务比较多的环境
简单讲 myisam擅长select innodb擅长update
场景应用
mysiam
1.不需要事务支持的场景,读数据多的网站.
2.并发相对较低的业务,因为表级锁定的机制限制
3.数据修改相对较少的业务.阻塞问题
4.对数据要求一致性不高的业务.
innodb
1.需要事务支持的业务
2.适合高并发的业务,行级锁定.对高并发有很好的适应能力.但要确定查询是通过索引完成.
3.数据更新比较频繁的场景
4.数据一致性要求较高
5.硬件设备内存较大时