文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL数据库索引和事务的作用是什么

2023-06-22 00:07

关注

本篇内容主要讲解“MySQL数据库索引和事务的作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库索引和事务的作用是什么”吧!

1. 索引

1.1 概念

通俗的讲,索引与数据库中的表和数据的关系就类似于书架上的图书(表)、书籍内容(数据)和书籍目录(索引)的关系

1.2 作用

在数据库系统中建立索引主要有以下作用:

1.3 索引的原理

1.3.1 减少磁盘的访问次数是构建索引的核心思想

索引的目的是方便进行查询。
MySQL 的查询主要是 selectselect 基本执行的过程包括遍历表、依次取出每个记录、根据 where 字句的条件进行筛选
由于 MySQL 是把数据储存在硬盘上,因此进行查询时,每次取出记录都意味着要访问硬盘
而 IO 设备对硬盘的访问效率远低于对内存的访问,因此减少磁盘的访问次数就可以提高查询的效率,也就是构建索引的核心思路

1.3.2 B+ 树适用实现索引的底层

减少对数据的访问次数就是实现索引时的重要思想,接下来将会对几种数据结构进行分析,以找到更适合的实现索引的数据结构

二叉搜索树:

由于二叉搜索树可能是一个单支树,时间复杂度为 O(N)

AVL 树:

红黑树:

哈希表:

到这里为止,好像只有 AVL 树或者红黑树更加适合用作 MySQL 的索引的实现,而这两个数据结构的查找效率直接是由树的高度决定的,因此数据增多的话,树的高度也会增加。

为了进一步优化,就可以使用 N 叉搜索树来降低树的高度,即减少磁盘 IO,以提高查找效率

B 树:

B 树是 N 叉搜索树的一种

B 树示例结构:

MySQL数据库索引和事务的作用是什么

用在索引中,每个结点都表示一个记录

B 树的特点:

B+ 树:

B+ 树是一种特殊的 N 叉搜索树,是 B 树的改进版

B+ 树示例结构:

MySQL数据库索引和事务的作用是什么

 B+ 树相对于 B 树的改进:

B+ 树的优势:

1.4 适用场景

1.5 使用语句

补充:

创建主键约束(primary key)、唯一约束(unique)、外键约束(foreign key)时,会自动创建对应列的索引

1.5.1 查看索引

语法:

show index from 表名;

示例:

MySQL数据库索引和事务的作用是什么

1.5.2 创建索引

语法:

create index 索引名 on 表名(字段名);

示例:

MySQL数据库索引和事务的作用是什么

1.5.3 删除索引

语法:

drop index 索引名 on 表名;

示例:

MySQL数据库索引和事务的作用是什么

注意:

主索引不能删除,删除会报错

2. 事务

2.1 概念

事物:是属于计算机中一个很广泛的概念,一般是指要做的或所做的事情。在关系数据库中,一个事务可以是一条 SQL 语句或者一组 SQL 语句或整个程序。

通俗的讲,比如银行转账的操作,A 转给 B 500元,那么这个操作其实包含了 A 账户余额减少500元和 B 账户余额增加500元两个操作。

事物就相当于将这一连串的动作给打包,使其成为一个整体,要么全都不做,要么全都做完

2.2 为什么使用事务

用上述银行转账的例子为例,假设 A 账户减少500元的操作成功了,但 B 账户增加500元的账户没有成功,那么这个转账的操作是失败的。

事物的核心特点就是: 把一系列操作给打包到一起,构成一个整体,要么全都做完,要么一个都不做。

全都不做是指: 如果某个操作失败了,那么就会将此时的中间状态偷偷还原回去

因此使用事物的话就可以保证,某一系列的操作,不会只完成其中一部分,它要么完全完成,要么都没有完成

2.3 四大属性

事务是恢复和并发控制的基本单位,它具有四个属性:原子性、一致性、持久性、隔离性

事物的核心是原子性

2.3.1 原子性

概念:

一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。

事物的核心是原子性,原子性的核心是回退为中间状态,回退为中间状态核心就是回滚,回滚的核心就是记住每步的操作

2.3.2 一致性

概念:

事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。

执行事物之前和执行事物完成后,当前表里的数据都是合理的状态

2.3.3 持久性

概念:

持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

事物操作的数据都是直接操作硬盘,而硬盘的数据都是持久化的

2.3.4 隔离性

概念:

一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

2.4 使用方法

开启事物:

start transaction;

执行多条 SQL 语句

回滚或提交

-- 回滚:表示上述 SQL 语句全部失败rollback;-- 提交:表示上述 SQL 语句全部成功commit;

到此,相信大家对“MySQL数据库索引和事务的作用是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯