MySQL~教你满分回答什么是数据库索引? 索引的数据结构是什么? 什么是事务?
发布日期:2021-05-07 13:56:10 浏览次数:8 分类:精选文章

本文共 995 字,大约阅读时间需要 3 分钟。

什么是数据库索引?

概念

索引是一种特殊的文件,包含对数据库表中所有记录的引用指针。它可以对表中的一列或多列创建索引,并指定索引的类型。不同类型的索引有不同的数据结构实现。

作用

  • 索引在数据库中起到类似书籍目录的作用,可用于快速定位和检索数据。
  • 没有索引时,数据库查询需要遍历整个表,效率极低。
  • 索引显著提高数据库的查询效率,尤其是插入、修改和删除操作的效率也有所下降。
  • 索引的本质作用是避免数据库进行顺序查找,提升查找效率。

使用场景

  • 当对数据库表的某列或某几列进行频繁的条件查询时。
  • 当该表的插入、修改操作频率较低时。
  • 当索引不会占用过多的磁盘空间时。

满足以上条件时,建议对这些字段创建索引,以提高查询效率。反之,如果对这些列进行非条件查询,或者经常执行插入、修改操作,或者磁盘空间不足时,则不建议创建索引。

如何使用

  • 创建主键约束(PRIMARY KEY)、唯一约束(UNIQUE)、外键约束(FOREIGN KEY)时,会自动创建对应列的索引。
  • 手动创建索引时,可对非主键、非唯一约束、非外键的字段创建普通索引。
  • 索引的删除需谨慎操作,主键、唯一约束和外键索引不可删除。

数据结构

  • 索引的数据结构不是简单的二叉搜索树或哈希表。
  • B-树与二叉树的主要区别在于:
    • B-树的每个节点可以存储多个数据。
    • B-树的每个节点存储的数据个数与其度有关(度 = 存储数据个数 + 1)。
    • B-树的高度较低,查找效率比二叉树高。
  • B+树是实际应用中的索引结构,其特点是:
    • 数据仅存在于叶子节点。
    • 非叶子节点仅存储边界信息。
    • 查询时,平均访问磁盘的次数较少。
    • 变化操作需同步调整索引,影响性能。

查看SQL执行

  • 使用EXPLAIN命令可分析SQL执行过程,观察是否使用索引。
  • keyNULL表示未使用索引,否则显示使用了哪个索引。

什么是事务?

概念

事务是逻辑上的一组操作,组成的各个单元要么全部成功,要么全部失败。数据库事务具有原子性、一致性、持久性和隔离性。

使用方法

  • 开启事务:START TRANSACTION
  • 执行多条SQL语句
  • 提交或回滚:COMMITROLLBACK

特点

  • 原子性:所有操作要么全部成功,要么全部失败。
  • 一致性:事务执行前后,数据库始终处于合法状态。
  • 持久性:事务完成后,修改已持久生效。
  • 隔离性:确保不同事务之间的操作隔离。

通过实际操作可以看到事务的强大功能。

上一篇:Java~如何理解 Java是强类型语言 JavaScript是弱类型语言
下一篇:MySQL~什么是Java的JDBC编程、如何利用JDBC实现数据库的增删改查

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年03月21日 01时38分34秒