摘要:
### MySQL(二十二)其他数据库日志(一)通用查询日志和错误日志 #### 1 MySQL支持的日志 ##### 1.1 日志类型 - **慢查询日志**:记录执行时间超过`long_query_time`的所有查询,方便我们对查询进行优化 - **通用查询日志**:记录所有连接的起始和终止时 阅读全文
摘要:
### MySQL(二十二)其他数据库日志(二)bin log二进制日志 #### 1 bin log二进制日志 - bin log 即 binary log,二进制日志,也叫做变更日志 - 它记录所有更新数据的DDL和DML语句,但是不包含没有修改数据的语句(如Select、show等),以`事件 阅读全文
摘要:
MySQL(二十一)MVCC多版本并发控制 1 什么是MVCC MVCC(Multiversion Concurrency Control)多版本并发控制。即通过数据行的多个版本管理来实现数据库的并发控制,使得在InnoDB事务隔离级别下执行一致性读操作有了保障。 就是为了查询一些正在被其他事务更新 阅读全文
摘要:
[TOC] ### MySQL(二十)锁(二)表锁、行锁与页级锁 ### 从操作粒度的锁类型划分:表级锁、行级锁和页锁 为了提高数据库的并发度,每次锁定的数据范围越小越好,理论上只锁定当前操作的数据的方案会获得最大的并发度,但是管理锁也是很耗费资源的事情(涉及锁的获取、检查和释放),因此需要在` 阅读全文
摘要:
### MySQL(二十)锁(三)乐观锁与悲观锁 显式锁和隐式锁 #### 1 从对待锁的态度划分:乐观锁、悲观锁 - 从对待锁的态度划分,可以将锁划分为乐观锁和悲观锁,可以看出这两种锁是两种**对待数据并发的思维方式**。 - **乐观锁和悲观锁并不是锁,而是锁的设计思想** ##### 1.1 阅读全文
摘要:
### MySQL(十九)MySQL事务日志(二)UndoLog #### 1 undo 日志概述 `redo log`是事务`持久性`的保障,而`undo log`则是事务`原子性`和`一致性`的保证,如上图,在事务中更新数据的前置操作其实是需要将数据写入到 `undo log` 方便回滚。 阅读全文
摘要:
### MySQL(二十)锁(一)锁概述、S锁和X锁 #### 1 概述 - **`锁`是计算机协调多个线程或进程并发访问某一资源的机制**。 在程序开发过程中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是一些敏感的数据(如金额、订单等),就需要保证**这个数据在任何时刻都最多 阅读全文
摘要:
### MySQL(十八)MySQL事务(二):事务的隔离级别 MySQL是一个`客户端/服务器`架构的软件,可以有若干个客户端与之连接,连接上之后都可以被称作是一个会话,每个客户端都可以在自己的会话中向服务器发出请求语句,一个请求语句可能是事务的一部分,**因此对于服务器来说需要同时处理多个事 阅读全文
摘要:
### MySQL(十九)MySQL事务日志(一)RedoLog 事务的四种特性:`原子性`、`一致性`、`持久性`和隔离性都是基于什么机制实现的? - 事务的隔离性由`锁机制`实现 - 而事务的`原子性`、`一致性`和`持久性`则由事务的 `redo` 和 `undo` 日志来实现的 - `r 阅读全文