加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
MYSQL知识.txt 1.71 KB
一键复制 编辑 原始数据 按行查看 历史
hitty 提交于 2021-11-20 10:20 . add
1. MYSQL逻辑架构
(1)服务器层:连接处理,认证
(2)核心服务层:解析SQL,内置函数,跨存储引擎功能等
(3)存储引擎层:InnoDB等引擎,负责数据的存储和提取。
2. 表锁和行锁
表锁:锁定整张表,开销小
行锁:开销大,支持的并发量大,位于存储引擎层实现
3. MYSQL隔离级别(对应着springboot的@Transaction注解)
READ UNCOMMITTED:(脏读)会读到其他事务没有提交但是已经修改了的数据
READ COMMITTED:防止脏读
REPEATABLE READ:防止脏读和不可重复读,MYSQL默认的隔离级别,保证同一个事务中多次读取的结果一致
SERIALIZABLE:事务串行执行
4. MVCC
InnoDB的MVCC通过在每行记录后面保存两个隐藏的列(创建时间、过期时间)来实现。
此处的时间具体为版本号。MVCC默认在READ COMMITTED和REPEATABLE READ下使用。
5. InnoDB引擎
InnoDB 是 MySQL 的默认事务型引擎,用来处理大量短期事务。InnoDB 的性能和自动崩溃恢复特性使得它在非事务型存储需求中也很流行,除非有特别原因否则应该优先考虑 InnoDB。
InnoDB 的数据存储在表空间中,表空间由一系列数据文件组成。MySQL4.1 后 InnoDB 可以将每个表的数据和索引放在单独的文件中。
InnoDB 采用 MVCC 来支持高并发,并且实现了四个标准的隔离级别。其默认级别是 REPEATABLE READ。
通过间隙锁策略防止幻读,间隙锁使 InnoDB 不仅仅锁定查询涉及的行,还会对索引中的间隙进行锁定防止幻行的插入。
6. 聚簇索引与非聚簇索引
数据库表行种
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化