: Oracle, MySQL, SQL Server等
本篇文章默认以 MySQL的 InnoDB引擎为主
非关系型数据库
非关系型数据库也叫 NoSQL, 采用键值对的形式进行存储....Server层按顺序执行SQL的步骤如下:
客户端请求
连接器(验证用户身份, 给与权限)
查询缓存(存在缓存则直接返回, 不存在则执行后续操作)
分析器(对SQL进行词法分析和语法分析操作)
优化器...user库的权限, 是否允许对mysql库的user表进行SELECT)
创建新连接时身份验证基本信息
分析优化和执行
查询缓存
在执行一条 SELECT查询语句的时候会先去查询缓存看能否直接命中, 能命中就直接返回..., 缓存中没有才会去进行下一步
只要表有更新操作, 那么这张表的缓存就会更新, 所以对于一张更新较[]频繁的表来说缓存命中是比较低的 从 MySQL 5.7.20版本开始,
查询缓存已经被官方标注为废弃了...(READ UNCOMMITTED): 在事务中可以查看其他事务未提交的修改
读取未提交的事务也叫脏读
读提交 (READ COMMITTED):一个事务可以看到其他事务在他开始之后提交的修改