0
点赞
收藏
分享

微信扫一扫

MySQL事务和索引

四月Ren间 2022-11-18 阅读 100

目录

索引

概念

索引相当于书的目录,可以提高查的速度。但是索引也提高了增删改的开销,因为进行增删改会需要调整已经创建好的索引目录,降低增删改的速度。索引还提高了空间的开销。

增删改中包含查,总体来看查的频率高于增删改,所以索引对于提高数据库的性能有很大的帮助。

使用

image-20221115215549671

  • 创建索引

    image-20221116113806596

    根据名字这一列来创建索引

  • 查看索引

image-20221116112344054

  • 删除索引

    image-20221116113603543

索引在MySQL中的数据结构

  • N叉搜索树:每个节点上有多个值,同时有多个分叉,树的高度就降低了。

其中一种典型代表是B树

image-20221116145722691

对B树做进一步的改进,又引入了B+树

索引的数据结构就是B+树

image-20221116152326551

  • 提高查询速度,本质上是降低硬盘IO次数

事务

概念

事务的四大特性:原子性、一致性、持久性、隔离性

这些操作是要么全部成功,要么全部失败(执行中途出错的情况)。

  • 原子性:把所有操作打包成一个整体

image-20221116164425684

  • 一致性
  • 持久性
  • 隔离性

mysql的隔离级别

  • “脏读”
  • 不可重复读
  • 幻读

MySQL提供了4个隔离级别

隔离级别描述脏读不可重复读幻读
read uncommitted不做任何限制,事物之间可以随意并发执行。并发程度最高,隔离程度最低。
read committed对写操作加锁,并发程度降低,隔离性提高
repeatable read(默认档位)对写和读都加锁,并发程度进一步降低,隔离性进一步提高。
serializable严格串行化,并发程度最低,隔离性最高,执行速度最慢
举报

相关推荐

0 条评论