TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网产品结构MySqul数据库索引脑图思维导图

MySqul数据库索引脑图思维导图

  收藏
  分享
免费下载
免费使用文件
灰色と青 浏览量:62023-11-30 19:58:39
已被使用0次
查看详情MySqul数据库索引脑图思维导图

数据库事务,索引和存储函数等内容讲解

树图思维导图提供 MySqul数据库索引脑图 在线思维导图免费制作,点击“编辑”按钮,可对 MySqul数据库索引脑图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:472973f596df66088de65b4b78c7cb4b

思维导图大纲

MySqul-04思维导图模板大纲

数据库索引

什么是索引

mysql索引的建立对于mysql的高效运行是很重要的,索引可以大大提高mysql的检索速度, 但同时却会降低更新表的速度,例如对表进行Insert,update,和delete因为更新白哦时,mysql不仅要保存数据,还要保存索引文件

索引分类







单列索引:一个索引只包含单个列

多列索引:也叫组合索引,在创建索引时所关联的字段不是一个字段,而是多个字段

普通索引:最基本的索引他没有任何限制





唯一索引:索引列的值必须唯一,但允许有空值, 如果是组合索引,则列值组合必须唯一





主键索引:一种特殊的唯一索引,不允许有控制,一般在建表同时创建主键索引





组合索引:就是将单列索引进行组合,在创建索引是所关联的字段不是一个字段,而是多个字段。





外键索引:只有innoDB引擎支持外键索引,用来保证数据的一致性,完整性,和实现级联操作





全文索引:快速匹配全部文档的方式





隐藏索引:mysql.8不可见索引,隐藏索引不会被优化器使用,但仍然需要进行维护





降序索引:8新特性,支支持btree降序索引





函数索引:8新特性,开始之初在索引中使用函数表达式的值





结构分类

B+Tree索引:mysql中使用的最频繁的一个索引数据结构,是innoDB和mylsam存储引擎默认的索引类型

Hash索引:MySQL中memory存储引擎默认支持的索引类型





查看索引:show index from 表名;

索引删除: drop index 索引名称 on 表名; alter table 表名 drop index 索引名称

磁盘存储

系统从磁盘读取到内存时是以磁盘块Block为基本单位的

位于同一个磁盘块中的数据会被一次性读取出来,而不是需要什么取什么

数据在磁盘文件物理存储,数据页之间时组成双向链表,数据页内部的数据行是单向链表,而且数据行是根据主键从小到大排序





索引的工作原理

在实际中常用的数据库引擎为InnoDB,而innodb采用的索引数据结构为B+tree,





索引的设计原则:

创建索引时的原则:

1:对查询次数多,且数据量比较大的表建立索引;

2:使用唯一索引,区分度越高,使用索引的效率越高

索引字段的选择,应当从where子句的条件中提取,如果where子句条件比较多,则应当挑选最常用的,过滤效果最好的组合条件

使用前缀索引(短索引,列内容越短越好),构成索引的字段长度比较段,拿在给定的存储块中就可以存储更多的索引值



索引数量要适当,不是越多越好,对于插入,更新,删除操作,比较多的表来说,索引过多,表维护索引的成本就会比较高,从而降低插入,更新,删除的效率

组合索引:最左匹配原则

最左优先,以最左边的为七点任何连续的索引都能匹配上,同时遇到范围查询(>,<,between,like)就会停止匹配。



数据库事务

事务概念

事务:将两个事件绑定为一个事件,要么都成功,要么都失败

官方:一条或多条SQL语句组成一个执行单元,这个单元里的sql语句操作,要么同时成功,要么同时失败, 单元中的每条SQL语句都相互依赖,形成一个整体,如果某条SQL语句执行失败或者出现错误,那么整个单元就会回滚,撤回到事务最初始的状态,如果单元格中的所有sql语句都能执行成功,则事务就顺利执行。

事务的语法

开始事务 执行sql语句:执行一个或多个sql语句 结束事务 提交:没出问题,顺利执行成功 回滚:出现问题,数据恢复到初始状态。

start transaction://开启事务 语句 rollback; commit;

管理事务演示



事务提交方式



事务的特征

原子性

atomicity: 原子性是至事务包含的所有操作要么全部成功,要么全部失败回滚, 因此事务的操作如果成功就必须要完全应用到数据库, 如果操作失败则不能对数据库有任何影响;

一致性

consisstency: 一致性,是指事务必须使数据库从一个一致性到另一个一致性状态, 也就是说一个事务执行之前和执行之后必须处于一致性状态 (事务执行之前的数据状态和事务执行之后的数据状态要保持一致)

拿转账来说,假设张三和李四两者的钱加起来一共是2000,那么不管张三和李四之间 如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是2000,这就是事 务的一致性。

隔离性

isolcation: 隔离性是当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离

持久性

持久性: 持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就将是永久性的,即便是在数据库系统遇到故障情况下也不会丢失提交事务的操作

事务的隔离级别

事务的四种隔离级别

Read Uncommitted 名称:读未提交, 问题:脏读,不可重复读,幻读

Read Committed(Oracle默认隔离级别) 名称:读已提交, 问题:不可重复读,幻读

Repeatable Read(Mysql默认隔离级别) 名称:可重复读, 问题:幻读。

Serializable 名称:串行化, 无问题



数据库隔离级别操作



存储过程和存储函数

存储过程和存储函数概念

存储过程和存储函数是,事先经过编译并存储在数据库中的一段sql语句的集合

存储过程和存储函数的好处

存储过程和函数可以重复使用,减轻开发人员的工作量。类似于java中方法可以多次调用。 减少网络流量,存储过程和函数位于服务器上,调用的时候只需要传递名称和参数即可。 减少数据在数据库和应用服务器之间的传输,可以提高数据处理的效率。 将一些业务逻辑在数据库层面来实现,可以减少代码层面的业务处理。

存储过程和存储函数的区别

数据库存储过程是一组sql语句的集合, 他们可以被重复使用,并且可以接受参数, 存储过程 可以 没有返回值

存储函数是一种特殊的存储过程,他们可以返回一个值, 并且可以被其他SQL语句调用

存储过程语法



子主题 1

实例

存储函数

相关思维导图模板

线尚线思维脑图思维导图

树图思维导图提供 线尚线思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 线尚线思维脑图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:b18ab228102bb24c74e3227330b6849e

作业帮思维脑图思维导图

树图思维导图提供 作业帮思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 作业帮思维脑图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:0fa2dfe58ee459432166d72cafc50675