面试(数据库的索引结构)

一、目标

数据库索引是为了方便检索数据;提升查询效率;我们通过数据结构的设计,减少遍历磁盘的次数;不同的索引结构适用于不同的场景

二、常用的索引结构

2.1、B+树(B+Tree):

B+树是在B-树基础上的改进版本,也是最常用的索引结构之一。B+树相比于B-树,将所有的数据都存储在叶子节点中,而非内部节点,提高了磁盘IO的效率。B+树的叶子节点通过指针连接起来,形成一个有序链表,可以支持范围查询和顺序访问。

2.2、Hash索引(Hash Index)

Hash索引是一种基于哈希表的索引结构,它通过将关键字通过哈希函数映射到一个固定的位置,并在该位置上存储数据的指针。Hash索引适用于等值查询,具有快速的查找速度。但是,Hash索引不支持范围查询和顺序访问。

这些索引结构在数据库中起到了加快数据检索的作用,通过选择合适的索引结构和建立适当的索引,可以提高数据库的查询效率。不同的索引结构适用于不同的场景,开发者需要根据具体的需求选择合适的索引结构。

三、如果优化查询

3.1、建索适合的索引

最左适配原则

3.2、避免全表扫描

避免深度分页

3.3、避免无用字段返回

3.4、优化sql

综上所述,查询优化需要综合考虑数据库的结构、索引、查询语句的编写方式、无效数据、业务逻辑等多个方面,通过合理的优化手段可以提高查询的速度和性能。

相关推荐
司铭鸿4 分钟前
图论中的协同寻径:如何找到最小带权子图实现双源共达?
linux·前端·数据结构·数据库·算法·图论
友友马9 分钟前
『MySQL』 - 事务 (二)
数据库·mysql·oracle
薛晓刚17 分钟前
OceanBase的嵌入式数据库:vscode+python+seekdb
数据库
owCode21 分钟前
OceanBase训练营miniob提测踩坑
数据库·oceanbase·数据库开发
wind_one134 分钟前
16。基础--SQL--DQL-分页查询
数据库·sql
q***420537 分钟前
python的sql解析库-sqlparse
数据库·python·sql
ashane13142 小时前
Flask-SQLAlchemy db 使用说明
数据库·oracle
川Princess2 小时前
【面试经验】百度Agent架构研发工程师一面
面试·职场和发展·架构·agent
FinTech老王2 小时前
集中式 vs 分布式数据库:金融用户如何选择?——金仓数据库的双架构实践与选型指南
数据库·分布式·金融
uhakadotcom2 小时前
Next.js 从入门到精通(1):项目架构与 App Router—— 文件系统路由与目录结构全解析
前端·面试·github