【MySQL】索引和事务(B树、B+树图解原理)

一、索引

1.1 什么是索引?

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

1.2 索引的作用

🚓(1)数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系。
🚓(2)索引所起的作用类似书籍目录,可用于快速定位、检索数据。
🚓(3)索引对于提高数据库的性能有很大的帮助。

1.3 使用场景

🚗(1)数据量较大,且经常对这些列进行条件查询。
🚗(2)该数据库表的插入操作,及对这些列的修改操作频率较低。
🚗(3)索引会占用额外的磁盘空间。

反之,如果非条件查询列,或经常做插入、修改操作,或磁盘空间不足时,不考虑创建索引。

1.4 索引的相关SQL

🚕(1)查看索引

sql 复制代码
show index from 表名;

🚕(2)创建索引

sql 复制代码
create index 索引名字 on 表名(列名);

🚕(3)删除索引

sql 复制代码
drop index 索引名字 on 表名;

1.5 索引背后的数据结构-B+树

在介绍B+树之前先了解一下B+树的前身B树(也叫B-树)

B+树:

二、事务

2.1 什么是事务?

事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。

2.2 使用事务的目的

为了把若干个独立的操作打包成一个整体

2.3 事物的基本特性:

2.3.1 原子性

我们把要么一起成功(A帐户成功减少1000,同时B帐户成功增加1000),要么一起失败(A帐户回到原来状态,B帐户也回到原来状态)的操作叫原子性操作

2.3.2 一致性

在事务执行之前,和执行之后,数据库中的数据都是合理合法的,数据库不会因事务执行而遭到破坏

2.3.3 隔离性

隔离性是针对数据资源的并发访问,规定了各个事务之间相互影响的程度。

相关推荐
zyseo85 小时前
谷歌SEO 准首页词挖掘脚本:找出排在第 8-20 名的隐藏流量
大数据·数据库·人工智能
xiaogai_gai7 小时前
仅查询策略实战:从金蝶云·星空旗舰版定时拉取收料通知单
大数据·数据库·python
数据工匠老o7 小时前
异构数据库DDL同步:260条链路的结构变更自动适配方案
数据库·架构
L0017 小时前
MySQL5.7 DATE 字段无法设置默认日期?用触发器搞定|个人任务清单项目实战
mysql
这个DBA有点耶8 小时前
银行业市占率最高的国产数据库是谁?先搞清楚“市占率”的四种口径
数据库·程序员·架构
用户6279947182629 小时前
南大通用GBase 8a之基于审计日志的冷温热数据分析
数据库
数据库小学妹9 小时前
数据库运维五级成熟度:监控、备份、高可用怎么串起来
运维·数据库·监控
一个天蝎座的程序猿9 小时前
为了给报表提速,我把金仓KES的列存储折腾了个遍:聊聊KES的技术能力
数据库
飞越未来云城的霓虹飞猪9 小时前
AI 数据库地图:从 PostgreSQL 到向量数据库,一次看懂 AI 时代的数据底座
数据库
不像程序员的程序媛9 小时前
导出mysql数据结构
数据库·mysql