1、数据库存储引擎 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。存储引擎主要有: 1. MyIsam , 2. InnoDB, 3. Memory, 4. Archive, 5. Federated 。 2、InnoDB(B+树) InnoDB 底层存储结构为B+树, B树的每个节点对应innodb的一个page, page大小是固定的,一般设 为 16k。其中非叶子节点只有键值,叶子节点包含完成数据 适用场景: 1)经常更新的表,适合处理多重并发的更新请求。 2)支持事务。 3)可以从灾难中恢复(通过 bin-log 日志等)。 4)外键约束。只有他支持外键。 5)支持自动增加列属性 auto_increment。 2、TokuDB( Fractal Tree-节点带数据) TokuDB 底层存储结构为 Fractal Tree,Fractal Tree MySQL是世界上最受欢迎的关系型数据库管理系统之一,其性能和特性在面试中经常被考察。以下是针对提供的面试题的一些关键知识点的详细解释: 1. **数据库存储引擎**:存储引擎是数据库管理系统的基石,决定了数据如何存储、检索和管理。MySQL支持多种引擎,包括: - **MyISAM**:是MySQL的默认引擎,它不支持事务处理,但读取速度快。适用于读多写少的场景,不推荐用于需要事务完整性的应用。 - **InnoDB**:提供事务支持、行级锁定和外键约束,适合高并发更新请求和需要事务安全性的应用。 - **Memory**:数据存储在内存中,读取速度快,但重启后数据会丢失,适用于临时表和高速查询。 - **Archive**:用于长期归档数据,压缩存储,读写速度较慢,但节省空间。 - **Federated**:用于连接远程MySQL服务器上的表,数据不在本地存储。 2. **InnoDB存储引擎**:InnoDB采用B+树作为其底层存储结构,每个节点代表一个页(page),通常大小为16KB。非叶子节点存储键值,叶子节点包含完整的数据行。InnoDB适用于需要事务处理、并发更新、外键约束和恢复功能的场景。 3. **TokuDB存储引擎**:TokuDB使用Fractal Tree数据结构,这种结构允许快速插入和更新,因为它在节点中带有用于缓存更新的Message Buffer。TokuDB支持在线添加索引,对读写操作的影响小,尤其适合处理历史数据和低访问频率的数据。 4. **查看MySQL存储引擎**:可以通过`SHOW ENGINES;` SQL命令查看MySQL支持的所有存储引擎。 5. **InnoDB与MyISAM的区别**: - **事务支持**:InnoDB支持ACID事务,MyISAM不支持。 - **外键**:InnoDB支持外键约束,MyISAM不支持。 - **索引类型**:InnoDB使用聚集索引,数据和索引一起存储,MyISAM使用非聚集索引,索引与数据分开存储。 - **行级锁定**:InnoDB支持行级锁定,MyISAM使用表级锁定,可能导致并发性能下降。 - **行数统计**:InnoDB不直接保存行数,统计需全表扫描,而MyISAM维护了表的总行数。 了解这些存储引擎的特性,可以帮助数据库管理员根据应用需求选择合适的存储引擎,从而优化数据库性能和可靠性。在面试中,深入理解这些概念和技术将展示你对MySQL的掌握程度和问题解决能力。
剩余21页未读,继续阅读
- 粉丝: 529
- 资源: 615
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助