分不清楚的存储引擎(MySQL存储引擎)
什么是存储引擎?
个人理解: 采用不同的方式 对数据进行存储。
搜索结果:“MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。”
常用的存储引擎有哪些?
(1) MyISAM存储引擎
MyISAM引擎是MySQL数据库最常用的;
特点:
- 不支持事务
- 表级锁定,数据更新时锁定整个表:其锁定机制是表级锁定
- 读写互相阻塞
- 灵活的AUTO_INCREMENT字段处理
- 可被转换为压缩、只读表来节省空间
- 读取速度较快,占用资源相对少
- 不支持外键约束,但支持全文索引
使用场景:
适合于大量的数据读而少量数据更新的混合操作。MyISAM表的另一种适用情形是使用压缩的中读表
(2)InnoDB 存储引擎
InnoDB 引擎是mysql的缺省引擎;
特点:
- 用COMMIT(提交)、SAVEPOINT及ROLLBACK(回滚)支持事务处理
- 提供全ACID 兼容 (A: 原子性(Atomicity)C:一致性(Consistency) I :隔离性(Isolation) D : 持久性(Durability))
- –在MySQL服务器崩溃后提供自动恢复
- 行级锁
- –支持外键及引用的完整性,包括级联更新和删除
使用场景:
适用于查询中包含较多的更新操作 ,支持事务选择InnoDB 存储引擎。
(3)MEMORY 存储引擎
使用MEMORY存储引擎的表,其数据存储在内存中,且行的长度固定,这两个特点使得MEMORY存储引擎非常快;
特点: - 表数据及索引被存储在内存中
- 表级锁机制
- 不能包括 TEXT或者BLOB字段
使用场景:
非永久需要的数据,或者是能够从基于磁盘的表中重新生成的数据。