mysql的事务隔离概念

InnoDB默认隔离级别为可重复读,更新数据的时候使用当前读。他们都是在内部视图的基础支持的基础上完成的。下面会记录一些mysql的事务回滚和事务启动时机也记了一些在官方手册上撸下来的概念 事务隔离mysql> CREATE TABLE `t` ( `id` int(11) NOT NULL, `k` int(11) DEFAULT NULL, PRIMARY KEY (`id`) )...

2019-04-10 23:38:33

阅读全文

全局锁,表锁,行锁

全局锁 当需要让整个数据库都处于只读状态的时候,可以使用下面这个命令,之后的其他数据更新,数据定义语句全部会被堵塞住 FLUSH TABLE WITH READ LOCK 它的应用场景是做全库的逻辑备份,但是一般没人会真的这样做。因为这样做会有一堆的风险,主库这样做业务GG,从库这样做主从业务延迟。 在讲到<a href='...

2019-03-29 01:50:07

阅读全文

05 -06| 深入浅出索引

索引可以提高数据的查询效率,就像书的目录。其中索引设计到一部分数据结构和算法的内容,想要深入理解索引的概念那正要补补数据结构和算法了。 涉及数据结构 哈希表有序数组搜索树 优缺点 数据模型 优点 缺点 哈希表 插入和查找在没退化成链表情况下O(1) 不适合范围查找 有序数组 等值范围...

2019-03-20 23:07:16

阅读全文

03 | 事务隔离:为什么你改了我还看不见?

这篇主要是记录了事务操作的几个隔离级别,为了方便解释和记忆会以表格的形式来归纳总结。事务的隔离级别和特性都是非常有趣的东西 事务的特性ACID 原子性一致性隔离性持久性 隔离性和隔离级别 当多个事务同时发生时就会出现脏读,不可重复读,幻读,为了解决这些问题有了隔离级别这个概念。标准隔离级别和区别见...

2019-03-08 00:12:06

阅读全文

02 | 日志系统:一条SQL更新语句是如何执行的?

这边会介绍MySQL中的两种更新日志,binlog和InnoDB的redo log,这两块是MySQL比较重要也跑不掉的两个知识点。 binlog介绍 binlog主要是数据库server层的东西在<a href'https://www.phpzjj.com/article/6067.html' target="_blank">mysql基础架构</a>有讲到server层和储存引擎层的一些...

2019-03-05 23:55:03

阅读全文

01 | 基础架构:一条SQL查询语句是如何执行的?

写在前面 最近在看丁奇在专栏中讲解mysql的一套课程,作为观摩老师傅的技巧不由的掏出了我的小本本把每集我认为比较核心的知识点记录在了自己的博客上。同时也分享出极客时间的这套课程MYSQL丁奇45讲,侵必删。 知识点 连接器查询缓存分析器优化器执行器 mysql基础架构 连接器查询缓存分析器优化器执行器

2019-03-04 00:51:57

阅读全文