MySQL存储引擎
2021/8/24 19:36:15
本文主要是介绍MySQL存储引擎,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
MySQL存储引擎
MySQL 提供不同的技术存储数据,这些技术使用不同的数据存储机制、索引建立方式、锁方式来完成数据的构建,这些技术统称为存储引擎。
MySQL 至少支持 9 种存储引擎,目前最受关注的是 InnoDB 和 MyISAM 存储引擎
MyISAM
- MySQL5.5版之前的默认数据库引擎,性能不错,而且提供了大量的特性,包括全文索引、压缩、空间函数等
- 但MyISAM不支持事务和行级锁, 而且崩溃后无法安全恢复。
InnoDB
- 由于MyISAM的不足,MySQL引入了InnoDB (事务性数据库引擎)
- MySQL 5. 5版本后默认的存储引擎为InnoDB,我们使用的基本都是InnoDB 存储引擎
- 但是在某些情况下使用MyISAM 也是合适的比如读操作非常频繁的情况下。
区别
- 是否支持行级锁: MyISAM 只有表级锁, 而InnoDB 支持行级锁和表级锁 ,默认为行级锁。
- 是否支持事务和崩溃后的安全恢复: MyISAM 强调的是性能,每次查询具有原子性,其执行速度比InnoDB更快,但是不提供事务支持。
- InnoDB提供事务支持事务,外部键等高级数据库功能。具有事务、回滚和崩溃修复能力的事务安全表。
- 是否支持外键: MyISAM不支持,而InnoDB支持。
- 是否支持MVCC :InnoDB支持,MyISAM不支持。应对高并发事务,MVCC比单纯的加锁更高效;
- MVCC只在 读取已提交和可重复读两个隔离级别下工作;
- MVCC可以使用乐观锁 和悲观锁来实现
使用场景
-
MyISAM 对于不支持事务并且存在大量 SELECT 的读场景比较合适;
-
如果业务代码中要支持事务,必须选择 InnoDB 存储引擎;
-
如果业务代码中要支持外键,必须选择 InnoDB 存储引擎;
这篇关于MySQL存储引擎的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享
- 2024-02-22docker mysql 5.7
- 2024-02-18从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践
- 2024-02-07mysql 外键索引入门介绍,为什么工作中很少有人使用?