MySQL系列之九——MySQL事务和隔离级别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL系列之九——MySQL事务和隔离级别相关的知识,希望对你有一定的参考价值。

DML :
DELETE
INSERT INTO
UPDATE
与查询操作有关

INSERT INTO tb_name (col1,col2,...) VALUES (val1,val2,...)[,(val1,val2,...)]
字符型 :单引号
数值型 :不需要引号
日期时间型
空值 :NULL
REPLACE INTO 替换 用法相同

DELETE :
DELETE FROM tb_name WHERE condition;
truncate tb_name 清空表并重置AUTOINCREMEN计数器;

UPDATE tb_name SET col1=...,col2=... WHERE

mysql 机制 :
连接管理器:
接受请求
创建线程
认证用户
建立安全连接

并发控制 :
mbox : MDA
多版本并发控制 :MVCC 操作某个时间的快照

锁 :
读锁 :共享锁
写锁 :独占锁
LOCK TABLES tb_name lock_type(read|write);
UNLOCK TABLES 解除所有表的锁

锁粒度:从大到小 ,MySQL服务器仅支持表级锁,行锁需要由存储引擎完成
表锁
页锁
行锁

事务 :
RDBMS :ACID(原子性、一致性、隔离性、持久性)
事务日志 :
重做日志
redo log
撤消日志
undo log

隔离级别 :
READ-UNCOMMITRED 读未提交
READ-COMMITTED 读提交
REPATABLE READ 可重读
SERIABLEZABLE 可串行

多事务同时执行 :彼此之间互不影响的方式进行并行;
事务之间交互
通过数据集

ACID
Automicity 原子性,事务所引起的数据库操作,要么都完成,要么都不执行;
Consistency 一致性,执行前后数据库整体状态没有改变(隔离)
Isolation 隔离性 事务调度,事务之间影响最小 MVCC多版本并发控制
Durability 持久性,一旦事务成功完成,系统必须保证任何故障都不会引起事务表示出不一致性;
1、事务提交之前就已经写出数据至持久性存储;
2、结合事务日志完成;
事务日志产生顺序IO
数据文件产生随机IO

事务的状态 :
活动的 :active
部分提交的 :最后一条语句执行后
失败的
中止的
提交的
状态转换过程 :
技术图片

SQL ,ODBC

START TANSACTION : 启动
COMMIT :提交
ROLLBACK :回滚

以上是关于MySQL系列之九——MySQL事务和隔离级别的主要内容,如果未能解决你的问题,请参考以下文章

Mysql数据库理论基础之九---四类隔离级别

MySQL从青铜到王者第八篇:MySQL视图事务索引

mysql事务隔离级别的实现原理

如何更改mysql事务隔离级别

mysql 的事务隔离级别 及各个隔离级别应用场景,详细

Mysql得隔离级别