DAY14:一条SQL查询语句是如何执行的?| 事务的四大特性有哪些?| 数据库的事物隔离级别有哪些

目录

一条SQL查询语句是如何执行的?

事务的四大特性有哪些?

数据库的事物隔离级别有哪些? 


一条SQL查询语句是如何执行的?

1.连接器:连接器负责跟客户端建立连接、获取权限、维持和管理连接。

2.查询缓存:MySQL拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。之前执行过的语句及其结果可能会以key - value对的形式,被直接缓存在内存中。

3.分析器:你输入的是由多个字符串和空格组成的一条SQL语句,MySQL需要识别出里面的字符串分别是什么,代表什么。

4.优化器:优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。

5.执行器:MySQL通过分析器知道了你要做什么,通过优化器知道了该怎么做,于是就进入了执行器阶段,开始执行语句。


事务的四大特性有哪些?

事务的四大特性通常被称为ACID特性:

1.原子性:确保事务的所有操作要么全部执行成功,要么全部失败回滚,不存在部分成功的情况。

2.一致性:事务执行前后,数据库从一个一致性状态转变到另一个一致性状态。

3.隔离性:多个事务并发执行时,每个事务都应该被隔离开来,一个事务的执行不应该影响其他事务的执行。

4.持久性:一旦事务被提交,它对数据库的改变就是永久性的,即使在系统故障或崩溃后也能够保持。


数据库的事物隔离级别有哪些?

1.读未提交(Read Uncommitted):

  • 允许一个事务读取另一个事务尚未提交的数据修改。
  • 最低的隔离级别,存在脏读、不可重复读和幻读的问题。

2.读已提交(Read Committed):

  • 一个事务只能读取已经提交的数据。其他事务的修改在该事物提交之后才可见。
  • 解决了脏读的问题,但仍可能出现不可重复读或幻读。 

3.可重复度(Repeatable Read):

  • 事务执行期间,多次读取同一数据会得到相同的结果,即在事务开始和结束之间,其他事务对数据的修改不可见。
  • 解决了不可重复读问题,但仍可能出现幻读。 

4.序列化(Serializable):

  • 最高的隔离级别,确保事务之间的并发执行效果与串行执行的效果相同,即不会出现脏读、不可重复读和幻读的情况。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值