代码拉取完成,页面将自动刷新
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. 聚簇索引与非聚簇索引
数据库表行种
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。