博客
关于我
MySQL~教你满分回答什么是数据库索引? 索引的数据结构是什么? 什么是事务?
阅读量:336 次
发布时间:2019-03-04

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

什么是数据库索引?

概念

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

作用

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

使用场景

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

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

如何使用

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

数据结构

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

查看SQL执行

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

什么是事务?

概念

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

使用方法

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

特点

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

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

转载地址:http://dnee.baihongyu.com/

你可能感兴趣的文章
jQuery 事件及动画
查看>>
[电影]《Ladybird》演绎完整18岁的青春
查看>>
js中[]、{}、()的区别
查看>>
js-禁止右键菜单代码、禁止复制粘贴代码
查看>>
血色先锋队
查看>>
win10系统安装配置Go环境包(第0章)
查看>>
搭建samba服务器
查看>>
Java: 错误: 不支持发行版本 5
查看>>
顺序表的操作总结
查看>>
Java基础语法
查看>>
文本情感分类
查看>>
Python模块_os文件_目录方法
查看>>
部署kuboard3 管理工具
查看>>
SpringBoot中使用Mybatis访问MySQL数据库(使用xml方式)
查看>>
Algorithms Unlocked
查看>>
python中的map( )函数及lambda()函数简介
查看>>
深度优先遍历(DFS)和广度优先遍历(BFS)
查看>>
LeetCode之二叉树的所有路径(257)、路径总和(112、113、437)、二叉树的直径(543)
查看>>
轮播图——旋转木马(Jquery)
查看>>
普通平衡树板子
查看>>