文
章
目
录
章
目
录
Java面试题:说说MySQL数据库存储引擎有哪些,有什么区别
得分点
InnoDB、MyISAM、Memory
标准回答
MySQL数据库存储引擎主要有InnoDB和MyISAM,Memory以及其他MySQL存储引擎仅做了解。
- InnoDB引擎:InnoDB是MySQL的事务安全(ACID兼容)存储引擎,具有提交、回滚和崩溃恢复功能来保护用户数据。它支持行级锁定读取,增加了多用户并发性和性能。InnoDB将用户数据存储在聚集索引中,以减少基于主键的常见查询的I/O,同时支持FOREIGN KEY来维护数据完整性。
- MyISAM引擎:MyISAM引擎的表占用空间较小,但其表级锁定限制了读/写工作负载的性能。因此,它通常用于只读或以读取为主的场景。
- Memory引擎:Memory引擎将所有数据存储在RAM中,以便在需要快速查找非关键数据的环境中进行快速访问。它以前被称为HEAP引擎。
- Archive引擎:Archive引擎适合存储大量的独立数据,通常作为历史记录,因为它们不经常被读取。它具有高效的插入速度,但对查询的支持相对较差。
- Cluster/NDB引擎:Cluster/NDB引擎是高冗余的存储引擎,使用多台数据机器联合提供服务以提高整体性能和安全性。它适合数据量大、安全性和性能要求高的应用。
- Federated引擎:Federated引擎提供连接单独的MySQL服务器,从多个物理服务器创建一个逻辑数据库的能力。这对于分布式或数据集市环境非常合适。