iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >数据库基础-事务篇
  • 574
分享到

数据库基础-事务篇

数据库基础-事务篇 2016-09-22 11:09:01 574人浏览 才女
摘要

1、事务是什么              事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。 2、事务的四大特性

数据库基础-事务篇

1、事务是什么      

       事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。

2、事务的四大特性 

      数据库事务 transanction 正确执行的四个基本要素。ACID,原子性(Atomicity)、一致性(Correspondence)、隔离
性(Isolation)、持久性(Durability)。

      (1)原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
      (2)一致性:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。
      (3)隔离性:隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行 相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,  必须串行化或序列化请 求,使得在同一时间仅有一个请求用于同一数据。
      (4)持久性:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚

3、事务隔离级别

在介绍数据库提供的各种隔离级别之前,我们先看看如果不考虑事务的隔离性,会发生的几种问题

脏读:

    脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据。

不可重复读

    指的是在数据库中的某个数据,一个事务范围内多次查询返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。

幻读

  幻读是事务非独立执行时发生的一种现象。例如事务T1对一个表中的所有行的某个数据项对了从1修改到2的操作,此时事务T2对表中插入了一行数据项,而且这个数据项为1并提交。当T1再次查询刚刚修改的数据时,会发现还有一行没有被修改。这就是幻读

 

幻读和不可重复读都是读取另一条已经提交的事务(脏读是同一条事务查询的情况),所不同的是不可重复读查询的事同一个数据项,而幻读针对的事一批数据整体。

Mysql提供的四种隔离级别

①Read uncommitted(未提交读):最低级别,任何情况都可能发生

②Read committed(已提交读):避免脏读的发生

③Repeatable red(可重复读):避免脏读,不可重复读的发生

④Serializable(串行化):可避免脏读,不可重复读,幻读的发生

默认隔离级别为Rc

查询当前事务的隔离级别:select @@tx_isolation;

 

小知识:mysql的默认隔离级别为什么是Rc,而不是RR?

先说结论:因为之前没有row格式的binlog的情况下,如果隔离级别是rc,可能导致主从数据库不一致

原因:

binlog为statement记录的事master上产生的sql语句,按提交顺序记录的,因此binlog中日志记录的是先插入数据,后删除数据(虽然在master上是先删除后插入),逻辑上产生了不一致

解决:

使用rr隔离级别

binlog格式改为row

 

 

 

 

您可能感兴趣的文档:

--结束END--

本文标题: 数据库基础-事务篇

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

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

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

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

下载Word文档
猜你喜欢
  • 【MySQL基础篇】MySQL数据库安装教程
    ✅作者简介:大家好我是hacker707,大家可以叫我hacker,新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 ...
    99+
    2023-09-06
    数据库 mysql
  • 一篇文章带你了解MySQL数据库基础
    目录1. 数据库概念1.1 数据库是干嘛的?1.2 数据库和数据结构是啥关系?1. 数据库是一个软件/程序1.3 两种类型的数据库2. MySQL数据库2.1 MySQL数据...
    99+
    2024-04-02
  • Mysql数据库入门基础篇--mysql 多表查询
    【Mysql数据库入门基础篇--mysql 多表查询 🔻一、mysql 多表查询1.1 🍃 7种sql joins 的实现1.2 🍃 错误写法-...
    99+
    2023-09-05
    数据库 mysql sql mysql多表查询 select linux 运维
  • 【MySQL】基础实战篇(1)—数据库与数据表的操作
    创建管理数据库创建数据库查看与选择数据库修改数据库删除数据库 创建管理数据表创建数据表查看数据修改数据表删除数据表 创建管理数据库 创建数据库 语法: CREATE...
    99+
    2023-09-27
    数据库 mysql oracle
  • 【MySQL数据库 | 第十五篇】事务
        目录    前言:  介绍事务:  控制事务:  事务四大特性:  并发事务问题:  事务隔离级别: 总结:    前言: 这章我们将进入到MySQL基础篇的最后一章:事务,希望大家可以坚持下去,跟着我一起走完MySQL的学...
    99+
    2023-09-03
    数据库 mysql java
  • 【MySQL】数据库基础
    文章目录 1. 登陆选项的认识2. 什么是数据库3. 存储数据为什么不用文件?4. 见一见数据库创建数据库创建表 5. SQL语句分类6. 查看MysQL存储引擎 1. 登陆选项的认识...
    99+
    2023-10-18
    数据库 mysql
  • python之基础篇(五)——数据类型
    防伪码:忘情公子著  前面四篇我们已经讲了许多概念方面的东西,从此篇开始,我们将真正开始学习python。  在上一篇中,我们已经说过python有哪些核心数据类型,接下来我们将一一细说这些数据类型。python数据类型之数字类型  pyt...
    99+
    2023-01-31
    数据类型 基础 python
  • Python操作lxml库(基础篇)
    ​  活动地址:CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。 学习日记 目录 目录 学习日记 一、lxml库概述 1、lxml库介绍 2、lxml库特点 3、lxml库的安...
    99+
    2023-09-02
    python
  • 【MySQL】 MySQL数据库基础
    文章目录 🐱‍👓数据库的操作📌显示当前的数据库📌创建数据库🎈语法:🎈语法说明🎈示...
    99+
    2023-09-18
    数据库 mysql 基础操作 oracle
  • MySQL数据库基础篇SQL窗口函数示例解析教程
    目录本文简介正文介绍聚合函数 + over()排序函数 + over()ntile()函数 + over()偏移函数 + over()本文简介 前段时间,黄同学写了一篇《MySQL窗...
    99+
    2024-04-02
  • MySQL系列之开篇 MySQL关系型数据库基础概念
    目录一、基础概念二、数据库管理技术的发展三、关系型数据库(RDBMS)概念四、RDBMS设计范式一、基础概念 数据(Data)是描述事物的符号记录,是指利用物理符号记录下来的、可以鉴...
    99+
    2024-04-02
  • 【MySQL】数据库基础知识
    文章目录 一. 什么是数据库二. 为什么要有数据库三. 数据库分类四. 数据库的基本使用1. MySQL安装2. 检查MySQL后端服务器是否启动3. 连接MySQL服务器4. 服务器,数据库...
    99+
    2023-09-03
    数据库 mysql
  • 零基础学MySQL(四)-- 数据库最常用的操作【查询基础篇 -- 单表查询】
    目录 📔一、最简单的 select 语句1️⃣基本语法2️⃣基本练习3️⃣补充说明(1) 使用表达式对查询的列进行运算(2) 在 select 语句中可使用 as 语句取别名 📕...
    99+
    2023-08-21
    数据库 mysql sql
  • 【从删库到跑路 | MySQL总结篇】数据库基础(增删改查的基本操作)
    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论...
    99+
    2023-12-23
    数据库 mysql sql
  • 【Python基础篇】Python中的七种数据类型
    文章目录 前导一、数字类型(Number)二、布尔类型(Boolean)三、字符串类型(String)3.1 字符串索引3.2 字符串截取、拼接和复用 四、列表类型(List)4.1 ...
    99+
    2023-09-04
    python 开发语言
  • 【Mysql】数据库基础与基本操作
    🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风翻盘。 🛸Mysql专栏:Mys...
    99+
    2023-08-16
    mysql
  • 3.2 - 编程基础 - MySQL数据库
    「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「订阅专栏」:此文章已录入专栏《网络安全入门到精通》 MySQL数据库 一、环境准备 ...
    99+
    2023-09-03
    数据库 mysql 网络安全
  • MySQL 数据库的基础知识
    目录1. 认识数据库1.1 数据库和数据结构的关系1.2 为什么需要数据库1.3 数据库的存储2. SQL2.1 介绍2.2 分类3. 数据库的类别3.1 关系型数据库3.2 非关系...
    99+
    2024-04-02
  • Java基础第二篇方法与数据成员
    目录1、调用同一对象的数据成员2、方法的参数列表3、调用同一对象的其他方法4、数据成员初始化5、总结上一篇文章Java基础 从HelloWorld到面向对象 1、调用同一对象的数据成...
    99+
    2024-04-02
  • 数据库系统基础理论
    写在前面关于数据库这个模块,我决定仔细将数据库的各个模块,像数据库基础概念、关系模型、关系型型数据库、关系数据库标准语言SQL、数据库的安全性、数据库的完整性以及数据库的设计、数据库编程。最后还会介绍一些关...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作