
MySQL~教你满分回答什么是数据库索引? 索引的数据结构是什么? 什么是事务?
发布日期:2021-05-07 13:56:10
浏览次数:8
分类:精选文章
本文共 995 字,大约阅读时间需要 3 分钟。
什么是数据库索引?
概念
索引是一种特殊的文件,包含对数据库表中所有记录的引用指针。它可以对表中的一列或多列创建索引,并指定索引的类型。不同类型的索引有不同的数据结构实现。
作用
- 索引在数据库中起到类似书籍目录的作用,可用于快速定位和检索数据。
- 没有索引时,数据库查询需要遍历整个表,效率极低。
- 索引显著提高数据库的查询效率,尤其是插入、修改和删除操作的效率也有所下降。
- 索引的本质作用是避免数据库进行顺序查找,提升查找效率。
使用场景
- 当对数据库表的某列或某几列进行频繁的条件查询时。
- 当该表的插入、修改操作频率较低时。
- 当索引不会占用过多的磁盘空间时。
满足以上条件时,建议对这些字段创建索引,以提高查询效率。反之,如果对这些列进行非条件查询,或者经常执行插入、修改操作,或者磁盘空间不足时,则不建议创建索引。
如何使用
- 创建主键约束(PRIMARY KEY)、唯一约束(UNIQUE)、外键约束(FOREIGN KEY)时,会自动创建对应列的索引。
- 手动创建索引时,可对非主键、非唯一约束、非外键的字段创建普通索引。
- 索引的删除需谨慎操作,主键、唯一约束和外键索引不可删除。
数据结构
- 索引的数据结构不是简单的二叉搜索树或哈希表。
- B-树与二叉树的主要区别在于:
- B-树的每个节点可以存储多个数据。
- B-树的每个节点存储的数据个数与其度有关(度 = 存储数据个数 + 1)。
- B-树的高度较低,查找效率比二叉树高。
- B+树是实际应用中的索引结构,其特点是:
- 数据仅存在于叶子节点。
- 非叶子节点仅存储边界信息。
- 查询时,平均访问磁盘的次数较少。
- 变化操作需同步调整索引,影响性能。
查看SQL执行
- 使用
EXPLAIN
命令可分析SQL执行过程,观察是否使用索引。 key
为NULL
表示未使用索引,否则显示使用了哪个索引。
什么是事务?
概念
事务是逻辑上的一组操作,组成的各个单元要么全部成功,要么全部失败。数据库事务具有原子性、一致性、持久性和隔离性。
使用方法
- 开启事务:
START TRANSACTION
- 执行多条SQL语句
- 提交或回滚:
COMMIT
或ROLLBACK
特点
- 原子性:所有操作要么全部成功,要么全部失败。
- 一致性:事务执行前后,数据库始终处于合法状态。
- 持久性:事务完成后,修改已持久生效。
- 隔离性:确保不同事务之间的操作隔离。
通过实际操作可以看到事务的强大功能。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年03月21日 01时38分34秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
BUUCTF web WarmUp
2019-03-04
python数据分析
2019-03-04
在所有情况下取到顶层对象
2019-03-04
解构赋值
2019-03-04
封装vue的弹窗组件
2019-03-04
B1021 个位数统计 (15 分)
2019-03-04
java中的字符串
2019-03-04
Idiot 的间谍网络
2019-03-04
MySql索引及使用、实现的数据结构
2019-03-04
初探SSRF漏洞
2019-03-04
四级单词部分(整理)
2019-03-04
JavaFX\FXML\CSS的简单使用
2019-03-04
【python】理解列表推导式以及列表推导式嵌套
2019-03-04
pythonBug入门——从零开始学python
2019-03-04
Vue.js——v-model结合checkbox类型——2020.11.22
2019-03-04
Mybatis核心配置文件--常用标签详解
2019-03-04
R语言练习题答案(3)
2019-03-04
jQuery 事件及动画
2019-03-04
[电影]《Ladybird》演绎完整18岁的青春
2019-03-04