数据库面试常考:索引类型与B+树解析
版权申诉
8 浏览量
更新于2024-07-21
收藏 1.53MB PDF 举报
本文主要汇总了2021年数据库面试中常见的问题,涉及MySQL引擎、分库分表、数据库范式以及查询优化等方面。其中,重点讲解了MySQL的三种索引类型:全文索引、哈希索引和B树索引,并详细阐述了聚簇索引的数据结构——B+树及其优势。
一、MySQL索引类型
1. 全文索引(FULLTEXT)
全文索引主要用于处理包含大量文本数据的查询,如在WHERE语句中使用LIKE“%word%"进行模糊匹配。MyISAM引擎支持全文索引,适用于CHAR、VARCHAR和TEXT类型的列。
2. 哈希索引(HASH)
哈希索引在等值查询(=和IN)时速度非常快,因为它可以直接定位到数据,但不适用于范围查询、排序和联合索引,因为它不支持顺序遍历。
3. B树索引(BTREE)
B树索引是最常见的索引类型,包括普通索引、唯一索引、主键索引和组合索引。其中,B+树是B树的一种变体,更适合数据库存储,因为其所有叶子节点都包含指向相邻节点的指针,有利于范围查询和全表扫描。
二、聚簇索引与B+树
聚簇索引是通过B+树数据结构实现的。B+树的特点是所有叶子节点都包含了完整的行数据,且叶子节点之间通过指针链接,这使得范围查询和排序更为高效。相比于B树,B+树的每个节点能存储更多的键值,降低了树的高度,减少了磁盘I/O操作。同时,B+树的所有数据都在叶子节点,确保了数据的物理顺序与逻辑顺序一致,适合InnoDB引擎的事务处理和行级锁定。
三、存储引擎
MySQL的存储引擎包括InnoDB和MyISAM等,其中InnoDB支持事务处理、行级锁定和外键约束,适合处理大量并发写操作;而MyISAM则以读写速度快著称,不支持事务,通常用于读多写少的场景。
四、数据库设计与优化
面试题中提及的分库分表是数据库水平扩展的一种策略,用于解决单表数据量过大导致的性能瓶颈。分库可以分散数据存储,减轻单个数据库的压力;分表则是将一张大表分成多个小表,通常采用哈希或范围分片方式。
三大范式是数据库设计的基本准则,包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF),它们旨在减少数据冗余,提高数据一致性。
覆盖/回表查询是指查询过程中,如果索引包含了所有需要的字段,就无需回溯到原始数据表中获取信息,这样可以显著提升查询速度。
数据库锁是用于控制并发访问的机制,MySQL中的锁包括表锁、页锁、行锁等,确保数据的正确性和一致性。
这些面试题涵盖了数据库设计、优化和管理的关键知识点,对于准备数据库相关面试的求职者来说,理解和掌握这些内容至关重要。
350 浏览量
1548 浏览量
点击了解资源详情
2024-08-28 上传
2021-12-29 上传
2021-12-20 上传
184 浏览量
689 浏览量
2022-09-21 上传
weixin_42418827
- 粉丝: 1
- 资源: 6
最新资源
- 100课AE系统教程,让你的视频玩转特效功能41-80.rar
- b7a-community-call-samples
- tinykv:基于TiKV模型构建分布式键值服务的课程
- 经典企业电脑模板
- 行业-强化练习-言语3+乌米+(讲义+笔记).rar
- libwdi:USB 设备的 Windows 驱动程序安装程序库-开源
- jQuery版本
- RBAP-Wiki:这是Roblox游戏的官方维基,称为“随机建筑和零件”。
- 字模提取软件合集有问题可以问我
- alien-filter
- pyslam:pySLAM在Python中包含一个单眼视觉Odometry(VO)管道。 它支持基于深度学习的许多现代本地功能
- SpringBoot之rpm打包文档.rar
- 距离标度:一种改进基于密度聚类的距离标度方法-matlab开发
- yarl:另一个URL库
- 信息系统项目管理师论文真题范文汇总.zip
- ICLR 2021上关于【NLP】主题的论文