一条SQL查询语句是如何执行的?
- 连接器:负责和客户端连接。获取权限,维护和管理连接。
- 查询缓存:仅在 MySQL 8.0 之前。当执行一条 SELECT 语句时2,MySQL 会在查询缓存里检查之前是不是执行过这样的语句,如果找到数据的话则直接返回数据。
- 分析器:对输入的 SQL 语句进行词法分析和语法分析。提取关键词和表、字段。构建语法树。
- 优化器:对索引进行优化。如果使用了多个索引,优化器会决定使用哪个索引。如果使用了 JOIN 连接,优化器会决定表的连接顺序。
- 执行器:当分析器告诉了做什么、优化器告诉了怎么做之后,执行器开心真正执行。
事务的四大特性有哪些?
事务是一组不可分割的操作集合,要么全部成功,要么全部失败回滚。
事务的四大特性:
- 原子性:事务要么全部成功,要么全部失败回滚,不可能出现部分成功的情况。
- 一致性:事务执行前后,数据库中的数据应满足一致性状态。
- 隔离型:并发事务执行不受其他事务干扰。
- 持久性:事务一旦执行成功,它对数据库的影响就是持久的。即使数据库崩溃也可以恢复。
数据库的事务隔离级别有哪些?
- 读未提交
- 一个事物可以读取另一个事务还未提交的数据。
- 最低的事务隔离级别,存在脏读、不可重复读、幻读的问题。
- 读已提交
- 一个事务对数据的修改只有在它提交后才对其他事务可见、才能被其他事务读到。
- 可以解决脏读的问题。
- 可重复读
- 事务开启期间多次读取同一事物得到的值相同。
- 可以解决脏读、不可重复读的问题。
- 串行化
- 将并发事务的执行改为串行执行
- 可以解决脏读、不可重复读、幻读的问题。

被折叠的 条评论
为什么被折叠?



