我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql基础(六)mysql事务

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql基础(六)mysql事务

mysql事务:是一个独立的工作单元

事务必须通过ACID测试:
    原子性(Atomicity):一个事务的所有操作要么全部成功执行,要么全部失败后回滚
    一致性(Consistency):数据库总是从一个一致性状态转换成另一个状态
    隔离性(Isolation):一个事务在做出的操作在提交之前,其他事务是不可见的,隔离有多种级别
    持久性(Durability):一旦事务提交,其所做出的操作将永久保存在数据库中

事务的执行流程:
    启动事务-->执行SQL语句-->提交事务-->保存数据
    启动事务-->执行SQL语句-->回滚-->数据不发生任何改变
    
    
    
事务的隔离级别:
    Read Uncommitted(读取未提交内容)
	出现问题:1、2、3		#不建议使用此隔离级别
    Read Committed(读提交)
	出现问题:2、3			#大多数数据库使用的隔离级别,性能较好
    Repeatable Read(不可重复读)	
        出现问题:3			#mysql默认使用的隔离级别
    Serializable(串行化)        #数据安全性最好,并发访问能力最弱,可能会出现死锁,
        出现问题:4		除非在数据要求比较严格的情况下,否则不建议使用
		 
出现问题:
    1、脏读:可以读取其他事务没有提交的数据
    2、不可重复读:在当前事务中没有做出任何修改,但使用select查看数据时可能查看到不同的数
    3、幻读:在当前事务提交之前只能看见启动事务时的数据和在当前事务中做出修改的数据,
             而其他事务所做出的修改将不能看见
    4、加锁读:如果在此事务中对表进行修改,那么数据库将给做出修改的表加上表锁,
               在此事务提交之前其他事务对此表做出的操作都会阻塞
    
mysql> SHOW VARIABLES LIKE '%iso%';		#查看当前的隔离级别
    SET tx_isolation='参数'			#修改隔离级别
	   对应参数(不区分大小写):
		Read-Uncommitted		#1
		Read-Committed			#2
		Repeatable-Read			#3(默认)
		Serializable			#4  
    
    mysql> SET GLOBAL autocommit=0;		#关闭自动提交事务
    mysql> START TRANSACTION		#启动事务
    mysql> COMMIT			#提交事务
    mysql> ROLLBACK			#回滚    
    
    
mysql事务日志:
    同事务日志和崩溃后安全恢复可以很好的保存数据安全
    
    事务日志包括:重做日志redo和回滚日志undo,事务日志通常比较小
   
    Redo记录的是已经全部完成的事务,就是执行了COMMIT的事务
	记录日志组是ib_logfile0、ib_logfile1	记录日志组可以更加需要调整文件数量

    Undo记录的是已部分完成并且写入硬盘的未完成的事务
    
    在mysq重启后,innodb通过事务日志将所有已完成并写入磁盘的和未完成的事务进行同步
    并将数据写入到磁盘中完成数据库崩溃后安全恢复
    
    mysql> SHOW VARIABLES LIKE 'innodb_log%';		#查看事务日志的相关配置
        innodb_log_file_size			#设置事务日志大小
	innodb_log_files_in_group 		#设置事务日志组文件数量
	innodb_log_group_home_dir  		#设置事务日志存放位置	


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql基础(六)mysql事务

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

下载Word文档

猜你喜欢

MySQL基础

1. 数据库1.1 数据库概述什么是数据库数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。什么是数据库管理系统数据库管理系统(DataBase Management Sy
MySQL基础
2019-04-23

MySQL基础

MySQL概述MySQL是关系型数据库,开源。关系型数据库:ER模型图,关系型数据库存放的是各种实体间的关系。以商城为例:常见关系型数据库:MySQL、Oracle、SQLServer、DB2。MySQL安装官网找到MySQL Community Server

	MySQL基础
2021-04-01

MySQL 基础

MySQL 基础MySQL 基础SQL 介绍DDL(数据定义语言)数据库操作数据表操作常用约束约束操作索引操作DML(数据操作语言)SELECT - 从数据库表中获取数据UPDATE - 更新数据库表中的数据DELETE - 从数据库表中删除数据INSERT
MySQL 基础
2021-06-05

MySQL基础:基础查询

DQL语言:数据查询语言3.1 基础查询语法select 查询列表from 表名;特点查询列表可以是字段、常量、表达式、函数,也可以是多个查询结果是一个虚拟表示例1、查询单个字段select 字段名 from 表名;2、查询多个字段select 字段名,字段名
MySQL基础:基础查询
2016-06-13

Mysql基础(一)

准备工作1.开启服务器··windows系统:  方法1.搜索服务,找到mysql并开启.  方法2.如果安装的是5.7版本,cmd中输入:net start MySQL57··Mac系统:  系统偏好设置开启mysql,然后命令行运行以下代码出现base字样
Mysql基础(一)
2014-12-15

【Mysql系列】Mysql基础篇

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,
【Mysql系列】Mysql基础篇
2023-12-23

MySQL(六):基本的SELECT语句

基本的SELECT语句 前言一、SELECT...二、SELECT ... FROM三、列的别名四、去除重复行五、空值参与运算六、着重号七、查询常数八、显示表结构九、过滤数据 前言 本博主将用CSDN记录软件开发求学之路上亲
2023-08-19

编程热搜

目录