事务
- 一:事务概述
1) 为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
2)当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。
事务的四个特性:ACID
1.原子性 aotmic
2.一致性 consistent
3.隔离性 isolaton
4.持久性 duration
- 二:隔离级别
1.隔离级别概述
事务隔离定义了数据库系统中一个操作产生的影响什么时候以哪种方式可以对其他并发操作可见。
即:主要影响的是并发事务之间的可见性
(1)未提交读Read Uncommitted
最低级别的隔离级别:意思就是即使一个更新语句没有提交,但是别的事务可以读到这个改变.这是很不安全的,可能会出现脏读。
(2)读提交 Read Committed
(3)可重复读 Repeatable Read
(4)序列化 Serializable
2.隔离级别修改SQL
(1) 查询mysql数据库系统级别的事务隔离级别
select @@global.tx_isolation
(2)InnoDB会话级别的事务隔离级别
SELECT @@tx_isolation
(3)修改数据库事务隔离级别
SQL SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}
3.隔离级别VS读现象(Read phenomena)
举例说明
在表user 中有下列数据
mysql> select * from user; +----+----------+------+ | id | username | age | +----+----------+------+ | 1 | juzy | 20 | +----+----------+------+ 1 row in set (0.00 sec)
1.脏读 dirty reads
当一个事务允许读取另外一个事务修改但未提交的数据时,就可能发生脏读(dirty reads)。
2.不可重复读(non-repeatable reads)
在一次事务中,当一行数据获取两遍得到不同的结果表示发生了“不可重复读(non-repeatable read)”.
3.幻读 (phantorm read )
在事务执行过程中,当两个完全相同的查询语句执行得到不同的结果集。这种现象称为“幻影读(phantom read)”
离级别 | 脏读(Dirty Read) | 不可重复读(NonRepeateable Read) | 幻读(Phantom Read) |
未提交读(Read uncommitted) | 可能 | 可能 | 可能 |
已提交读(Read committed) | 不可能 | 可能 | 可能 |
可重复读(Repeatable read) | 不可能 | 不可能 | 可能 |
可序列化(Serializable) | 不可能 | 不可能 | 不可能 |
- 三:隔离级别VS锁
隔离级别 | 写入锁 | 读取锁 | 范围锁 |
未提交读 | |||
已提交读 | YES | ||
可重复读 | YES | YES | |
可序列化 | YES | YES | YES |
参考link:
[1]http://zh.wikipedia.org/wiki/%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BA%8B%E5%8A%A1
[1]http://zh.wikipedia.org/wiki/%E4%BA%8B%E5%8B%99%E9%9A%94%E9%9B%A2
[2]https://www.byvoid.com/blog/rdbms-isolation-lock-concurrency
相关推荐
知识领域: 数据库管理 技术关键词: SQL、NoSQL、数据库优化、数据建模 内容关键词: 数据库设计、查询...资源描述: Coursera 上的《数据库管理原理》课程由知名大学教授授课,涵盖了数据库管理的基础知识和实践应用。
4.1.3 操作系统的硬件环境知识 4.1.4 中断相关知识 第5章 数据库技术基础 5.1.1 数据库基本概念 5.1.2 数据库系统的组成 第6章 关系数据库基础 6.1.1 关系数据库系统概述 第7章 关系数据库分析与设计 7.1.1...
单击此处添加标题 * * 目录页 数据库基础 数据库系统基本概念 数据库:长期储存在计算机内的、有组织的、可共享的数据集合 DBMS(DataBase Management System):一种操纵和管理数据库的大型软件,用于建立、使用和...
学习Spring必学的Java基础知识(含数据库事务基础知识)
数据库基础知识:介绍数据库的基本概念、数据模型和关系型数据库的原理,包括实体-关系模型、关系代数和SQL等。 数据库设计:讲解数据库设计的过程和方法,包括概念设计、逻辑设计和物理设计,以及常用的数据库设计...
非常详细的数据库知识点整理,主要涵盖:数据库基础知识、DDL、DML、DQL、DCL、事务讲解、Mysql、JDBC、Java操作Mysql、数据库连接池、Redis型非关系数据库、Java使用Jedis操作Redis数据库
1 数据库基础ppt 2 数据库设计ppt 3 数据库的实现 4 数据库表管理 5 数据库查询1 6 数据库查询2 7 T——sql编程 8 高级查询 9 事务处理 10 存储过程 11 触发器
涵盖了MySQL数据库的基本概念、体系结构、数据类型、SQL语言基础、索引优化、存储过程与函数、触发器、视图、事务管理、安全性以及备份与恢复等重要知识点。它旨在为学习者提供一个全面而精炼的MySQL学习指南。适用...
1. 基础知识:包括 MySQL 数据库的基本概念、SQL 命令、数据类型、索引、视图、存储过程等。 2. 性能优化:包括 SQL 查询优化、索引优化、数据表分区、缓存机制等。 3. 备份与恢复:包括数据备份和恢复的方法、备份...
数据库的基本知识,包括ER模型图,关系的转化,数据库事务处理等等,帮助初学数据库的人快速了解!
通过数据库系统概论(基础篇)的学习,学员可以系统地掌握数据库系统的基本原理,能熟练使用SQL语言在某一个数据库管理系统上进行数据库检索和操作,掌握数据库安全性和完整性的基本概念和基本方法。并能够在某一个...
2.1.2 事务管理 23 2.1.3 数据库管理员(DBA) 24 2.1.4 ORACLE的四种状态 25 2.2 SQL*Plus方式的ORACLE数据库启动和关闭 26 2.2.1 启动数据库 26 2.2.2 关闭数据库 26 2.3 svrmgrl方式的ORACLE数据库启动和关闭 28 ...
一章 基 础 知 识 二章 数据结构与算法 三章 操作系统 四章 数据库技术 五章 关系数据库系统 六章 关系数据库标准语言SQL ...九章 事务管理与数据库安全性 十章 新一代数据库应用开发工具 十一章 数据库技术的发展
都是一些常见的 mysql 面试题,包括数据库基础知识、索引、事务等方面 都是一些常见的 mysql 面试题,包括数据库基础知识、索引、事务等方面 都是一些常见的 mysql 面试题,包括数据库基础知识、索引、事务等方面 都...
第一篇为MySQL数据库基础,内容包含:数据库基础、MySQL语言、数据定义、数据操纵、数据查询、视图和索引、MySQL编程技术、MySQL安全管理、备份和恢复、事务管理、PHP和MySQL教学管理系统开发。第二篇为MySQL实验,...
1. **数据库基础知识**:介绍MySQL数据库的基本概念,包括数据库设计原则、数据类型、表结构设计等。 2. **SQL语言应用**:深入讲解SQL语言的高级应用,包括复杂查询、事务处理、存储过程、触发器等。 3. **数据库...
数据库和SQL:涵盖数据库基础知识、SQL语句的编写和优化、数据库事务等相关内容。 Web开发:包括常用的Web开发框架(如Spring、Spring Boot)、RESTful API设计、HTTP协议等。 分布式系统和微服务:介绍分布式系统...
oracle基础教案包括:数据库基本知识、数据库安装与配置、数据查询语言、多表查询、数据库函数、数据库操纵语言、数据库控制语言、数据库定义语言、数据库事务、视图、序列、索引、触发器、游标、函数、存储过程、...
数据库基础知识:了解数据库的概念、关系型数据库的特点以及SQL语言的基本语法。 2. 数据库设计:熟悉数据库设计原则和范式,能够设计出合理的数据库结构和关系模型。 3. SQL查询优化:了解索引的概念和使用...