内容简介:Mysql数据库支持多种存储引擎,不同的存储引擎有其适用的场景,选择合适的存储引擎是Mysql优化的策略之一。常见的存储引擎有:MyISAM、Innodb、Memory
Mysql数据库支持多种存储引擎,不同的存储引擎有其适用的场景,选择合适的存储引擎是 Mysql 优化的策略之一。
常见的存储引擎有:MyISAM、Innodb、Memory
Innodb
MySQL5.5以及之后的版本采用innodb作为默认的存储引擎,主要特点如下:
- 支持行级锁
- 支持外键约束
- 完备的事务机制,实现了四种隔离级别
- 可靠性号,崩溃后修复能力较高
文件格式:
- .frm(存储表定义)
- 共享表空间文件:ibdata1
- 私有表空间文件:表名.ibd
- redo log文件
适用场景:数据修改频繁,对事务特性要求比较高(如金融系统),需要支持并发处理能力的系统。
MYISAM
MySQL5.5以前采用MYISAM作为默认的存储引擎,主要特点如下:
- 比较强调读取效率,查询速度较快
- 磁盘空间占用少
- 只支持表级锁,并发能力较差
- 不支持事务,灾难恢复能力较差
文件格式:
- .frm(存储表定义)
- MYD(MYData,存储数据)
- MYI(MYIndex,存储索引)
适用场景:数据很少更新,一次插入,多次读取的业务场景。
MEMORY
类似于内存缓存,表结构的定义存在磁盘上(frm文件),实际数据是存储在内存中,响应速度比较快。
- 响应速度快
- 表级锁,频繁更新数据可能会造成并发瓶颈
- 不支持可变字段(但可以借助verchar实现文本存储)
- 数据可靠性很差,机器或MySQL服务器重启后,就会丢失
- 需要机器有足够的内存
适用场景:数据量不大,需要被频繁的访问,而且数据丢失不会对业务产生比较严重的影响。
以上所述就是小编给大家介绍的《MySQL主流存储引擎及适用场景》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Node.js特点和适用场景
- Apache Flink 技术栈及适用场景
- 各种分布式事务的实现方式适用的场景
- C++中重载、覆盖和隐藏的区别以及适用场景
- Java进阶(七)正确理解Thread Local的原理与适用场景
- JS每日一题: 前端的缓存有哪些?都适用什么场景?区别是什么?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。