iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >【赵强老师】数据库的事务
  • 382
分享到

【赵强老师】数据库的事务

【赵强老师】数据库的事务 2020-05-16 10:05:00 382人浏览 无得
摘要

一、什么是事务? 数据库事务(Transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。 例如

【赵强老师】数据库的事务

一、什么是事务?

数据库事务(Transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。

例如:从A账号给B账号转帐,对应于如下两条sql语句
update from account set money=money+100 where name=‘b’;
update from account set money=money-100 where name=‘a’;

这两条update语句应该作为一个整体来运行,要保证同时成功,或者同时失败;不应该存在一个成功,一个失败的情况。

二、数据库开启事务命令

我们可以使用下面的语句来开启或者结束一个事务。

  • start transaction  开启事务
  • rollback  回滚事务
  • commit   提交事务

例如,我们可以把上面的银行转账的update语句放到一个事务中执行。

start transaction;
update from account set money=money+100 where name=‘b’;
update from account set money=money-100 where name=‘a’;
commit;

三、事务的特征:ACID

  • 原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
  • 一致性(Consistency):事务必须使数据库从一个一致性状态变换到另外一个一致性状态。
  • 隔离性(Isolation):事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
  • 持久性(Durability):持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。

四、事务的隔离级别

多个线程开启各自事务操作数据库中数据时,数据库系统要负责隔离操作,以保证各个线程在获取数据时的准确性。

如果不考虑隔离性,可能会引发如下问题:

  • 脏读:指一个事务读取了另外一个事务未提交的数据。
  • 不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同。
  • 虚读(幻读):是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。

数据库共定义了四种隔离级别:

  • Serializable:可避免脏读、不可重复读、虚读情况的发生。(串行化)
  • Repeatable read(Mysql的默认值):可避免脏读、不可重复读情况的发生。(可重复读)
  • Read committed:可避免脏读情况发生(读已提交)。
  • Read uncommitted:最低级别,以上情况均无法保证。(读未提交)

我们可以可以通过下面的语句来查看mysql的事务隔离级别和设置隔离级别:

  • set (GLOBAL|SESSION) transaction isolation level 设置事务隔离级别
  • select @@tx_isolation 查询当前事务隔离级别

下面的语句将查看MySQL数据库当前的事务隔离级别。

下面的语句将MySQL的事务隔离级别设置成read committed,在这种隔离级别下,将会发生脏读的问题。

您可能感兴趣的文档:

--结束END--

本文标题: 【赵强老师】数据库的事务

本文链接: https://www.lsjlt.com/news/5908.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【赵强老师】Weblogic域和域的组成
    一、什么是WeblogicWebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于Java EE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库...
    99+
    2023-06-02
  • 数据库事务
    事务的四个特性 (ACID) ,分别是原子性( Atomicity), 一致性( Consistency), 隔离性( Isolation), 持久性( Durability)。一致性是事务的目的,原子性,...
    99+
    2024-04-02
  • 数据库 事务的特性ACID
    事务(Transaction)是并发控制的基本单位。    所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转帐工作:从一个...
    99+
    2024-04-02
  • 数据库中事务的定义
    这篇文章主要介绍“数据库中事务的定义”,在日常操作中,相信很多人在数据库中事务的定义问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”数据库中事务的定义”的疑惑有所帮助!接下来,...
    99+
    2024-04-02
  • Django数据库--事务及事务回滚
    数据库的读写操作中,事务在保证数据的安全性和一致性方面起着关键的作用,而回滚正是这里面的核心操作。Django的ORM在事务方面也提供了不少的API。有事务出错的整体回滚操作,也有基于保存点的部分回滚。本文将讨论Django中的这两种机制...
    99+
    2023-01-30
    事务 数据库 Django
  • 阿里云数据库比Mysql性能更强的云数据库服务
    随着互联网的快速发展,数据量的爆炸性增长使得数据库的性能和效率成为了关键因素。阿里云数据库作为一款云数据库服务,拥有强大的数据处理能力和稳定性,与传统MySQL数据库相比,其性能更为优越。本文将详细介绍阿里云数据库的特性、优势以及使用场景,...
    99+
    2023-11-07
    数据库 阿里 更强
  • Spring强大事务兼容数据库多种组合解决业务需求
    目录事物的由来事物特性什么事脏读、不可重复读、幻读查询spring事物spring事物有哪些可配项传播属性事物的由来 在mysql中只有innodb存储引擎才支持事物,所以我们后续都...
    99+
    2024-04-02
  • 数据库调优大师班:解锁数据库的高速公路
    ...
    99+
    2024-04-02
  • 数据库调优大师班:释放数据库的潜在能量
    数据库是企业信息系统的重要组成部分,其性能直接影响着企业的运营效率和竞争力。然而,随着数据量的不断增长和业务需求的不断变化,数据库的性能往往会逐渐下降,导致系统响应速度变慢、业务中断等问题。因此,数据库调优就显得尤为重要。 数据库调优是...
    99+
    2024-02-21
    数据库调优 性能优化 索引优化 SQL优化
  • 数据库 DCL:驾驭数据世界的大师之杖
    授权命令: 授权命令授予用户对数据库对象(如表、视图和存储过程)的访问权限。这提供了数据安全和完整性,因为它限制了特定用户可以执行的操作。常见的授权命令包括: GRANT:授予用户或角色对对象的特定权限。 REVOKE:撤销用户或角色对...
    99+
    2024-03-14
    数据库DCL(数据控制语言)
  • 数据库事务隔离的级别
    本篇内容介绍了“数据库事务隔离的级别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 概述与背景这是数据库...
    99+
    2024-04-02
  • Oracle undo 表空间数据文件丢失强制启动数据库(没有未提交的事务)
    环境:RHEL 6.5   Oracle 11.2.0.3 如果有RMAN备份的话,如果恢复数据文件就可以完成,本次我们测试在没有备份的情况下如何拉起数据库 ...
    99+
    2024-04-02
  • 数据库的建筑师:使用 DDL 构建数据结构
    数据库中的数据结构是数据的骨架,它定义了数据的存储方式、组织形式和访问权限。使用数据定义语言 (DDL) 构建数据结构是数据库管理系统 (DBMS) 中的一项基本任务。本文将详细介绍 DDL 中用于创建、修改和删除数据结构的常用命令。 ...
    99+
    2024-02-19
    数据定义语言 DDL CREATE ALTER DROP 数据建模 数据结构
  • Python数据库操作的终极指南:成为数据库操作大师
    Python数据库操作的终极指南 在Python中操作数据库就像一顿美味的晚餐,你不仅要学会选择合适的工具,还要掌握烹饪的技巧。就像你是厨房的主人, SQLAlchemy库就是你的工具箱,它不仅可以帮助你轻松地连接到不同的数据库,如MyS...
    99+
    2024-02-07
    Python, 数据库操作, SQLAlchemy, CRUD, SQL, MySQL, PostgreSQL, SQLite
  • MySQL数据库事务的示例分析
    小编给大家分享一下MySQL数据库事务的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!事务特点:ACID从业务角度出发,...
    99+
    2024-04-02
  • 数据库事务的特性有哪些
    这篇文章将为大家详细讲解有关数据库事务的特性有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。数据库四大特性分别是:原子性、一致性、分离性、持久性原子性 ...
    99+
    2024-04-02
  • 数据库设计大师之路:数据库设计工具的指南针
    数据库设计是软件开发过程中的一项至关重要的任务,它定义了数据的存储和检索方式。合适的数据库设计工具可以显著提高数据库设计的质量和效率。 数据库设计工具的类型 数据库设计工具分为两大类: 视觉化工具:允许用户通过图形界面设计数据库模式,提...
    99+
    2024-03-10
    引言
  • 数据库优化指南:让您的数据库成为您业务的强大引擎!
    一、优化数据库结构 选择合适的数据库类型:根据数据的类型和特性,选择适合的数据库类型,例如关系型数据库、NoSQL数据库等。 合理设计表结构:表结构要合理、规范,字段类型要与数据类型匹配,避免冗余和重复。 建立索引:建立适当...
    99+
    2024-02-07
    数据库优化 性能提升 数据安全 资源消耗 业务引擎
  • 数据库事务的有哪些特征
    这篇文章给大家分享的是有关数据库事务的有哪些特征的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。数据库事务的四个特征是:1、原子性,事务是数据库的逻辑工作单位,事务中的操作要么全做...
    99+
    2024-04-02
  • MySQL数据库的触发器和事务
    目录一、触发器概念二、 触发器的操作触发器的增删改操作触发器的查看删除操作三、事务概念四、事务的操作基本流程基础操作事务的提交方式事务的隔离级别隔离操作一、触发器 概念 触发器是SQ...
    99+
    2022-11-13
    MySQL数据库触发器 MySQL数据库事务
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作