首页
学习
活动
专区
圈层
工具
发布

MySQL数据库——事务

概述 用户定义了一系列执行SQL语句的操作,这些操作要么完全的执行,要么全部都不执行,他是一个不可分割的工作执行单位,这也是为了保证数据库的完整性。...MySQL 事务主要用于处理操作量大,复杂度高的数据。 特征 原子性(Atomicity) 一事务是最小的执行单元,要么全部完成,要么全部不完成,不会结束在中间某个环节。...事务在执行过程中发生错误,会被回滚,回滚到没有执行前的状态。 一致性(Consistency) 从一个一致状态切换到另一个一致状态。在事务开始之前和事务结束以后,数据库的完整性没有被破坏。...隔离性(Isolation) 对其他事务不可见。数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。...持久性(Durability) 一旦提交事务,将被永久保存到数据库。事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

30.3K75
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL数据库进阶-事务

    ​系列专栏:MySQL数据库进阶 事务 事务由单独单元的一个或多个SQL语句组成,在这 个单元中,每个MySQL语句是相互依赖的。...1、概念:在mysql中的数据用各种不同的技术存储 在文件(或内存)中。 2、通过show engines;来查看mysql支持的存储引 擎。...数据库事务的隔离性: 数据库系统必须具有隔离并发运行各个事务的能力, 使它们不会相互影响, 避免各种并发问题. 一个事务与其他事务隔离的程度称为隔离级别....Mysql 默认的事务隔离级别 为: REPEATABLE READ 在 MySql 中设置隔离级别 每启动一个 mysql 程序, 就会获得一个单独的数据库连接....查看当前的隔离级别: SELECT @@tx_isolation; 设置当前 mySQL 连接的隔离级别: set transaction isolation level read committed

    62820

    数据库-数据库-MySQL(12)- 事务

    目录 事务简介 事务操作 查看/设置事务提交方式 提交事务 回滚事务  事务四大特性(ACID) 并发事务问题  脏读 不可重复读 幻读 事务隔离级别 ---- 事务简介 事务 是一组操作的集合...举个例字就像张三向李四转账1000,但是完成这个操作,首先查看张三的余额有没有1000元,然后让张三的余额减少1000元,李四的余额加上1000元,  默认MySQL的事务是默认提交的,也就是说,当执行一条...DML语句,MySQL会立即隐式的提交事务。...优秀的数据库软件要确保每个事务都有ACID特性,并且具有很好的恢复特性,可以在机器有各种原因崩溃时恢复数据库 ---- 并发事务问题  脏读   开始时,事务A,执行select操作,然后执行update...id= 1,到数据库,然后并发事务B同时更新id= 1 数据,并提交到数据库,此时事务A的3操作,再去进行select 操作,发现前后数据不一样,这个问题就叫不可重复读 幻读 就是最开始在事务A

    2.7K30

    MySQL查看数据库安装路径

    有时候在我们开发的过程中并不一定记得数据库的安装路径。...比如要查看MySQL 数据库的安装目录在哪里: 我们可以通过mysql命令查看mysql的安装路径: # 以下两个sql任意一个可查询 select @@basedir as basePath from...dual ; show variables like '%basedir%'; 上面可以看到基础的安装路径,查看数据库data的路径怎么看,很简单,把上面的参数变量换成datadir即可: # 以下查询任意一个均可...,那么朋友会问,如果也不知道登录mysql 的账户密码,那又如何在查看mysql路径呢?...方法一: 1:查询运行文件所在路径 which mysql 然后可通过 /usr/bin/mysql -u账号 -p密码 连接Mysql: 然后执行上面的任意一个MySQL查看安装路径。

    15.7K20

    MySQL FAQ 系列 :如何查看当前最新事务 ID

    写在前面:在个别时候可能需要查看当前最新的事务 ID,以便做一些业务逻辑上的判断(例如利用事务 ID 变化以及前后时差,统计每次事务的响应时长等用途)。...通常地,我们有两种方法可以查看当前的事务 ID: 1、执行 SHOW ENGINE INNODB STATUS,查看事务相关信息 ====================================...50000 ENGINE*/ INNODB STATUS ---TRANSACTION 3359877640, not started --非活跃事务,还未开始 mysql tables in use...、INNODB_LOCKS、INNODB_LOCK_WAITS 三个表,通过这些信息能快速发现哪些事务在阻塞其他事务 先查询 INNODB_TRX 表,看看都有哪些事务 mysql> SELECT *...for InnoDB 3、利用 percona 分支的特性,查看当前最新事务 ID,该特性从 5.6.11-60.3 版本开始引入,执行下面的 2 个命令即可查看 mysqladmin ext | grep

    5.7K10

    开启查看Mysql数据库日志

    很多时候网站打开速度变慢,为了定位是否为数据库导致的,我们需要知道在访问网站的同时,站点执行了哪些SQL,每条SQL耗时多长。 为此,查看数据库日志是最直接的。...一般情况下,数据库日志默认是关闭的,因此需要先激活日志功能: 1....使用root用户登陆到数据库后,检查“数据库日志”是否开启 SHOW VARIABLES LIKE 'general%'; # 这份日志会保存到数据库的安装目录, Centos7默认的目录是 /var.../lib/mysql/ +------+-----------+ | Variable_name | Value | +------+-----------+ | general_log...无需重启数据库,直接刷新站点,发现 VM_211_224_centos.log 日志有内容,VM_211_224_centos-slow.log日志无内容(当然这是针对我的情况而言,mysql/mariadb

    9.9K10

    数据库事务系列-MySQL跨行事务模型

    说来和MySQL倒是有缘,毕业的第一份工作就被分配到了RDS团队,主要负责把MySQL弄到云上做成数据库服务。...再查看该行记录的第二个最新版本为trx7,与当前事务read_view对比发现,trx7介于当前活跃事务列表最小事务ID和最大事务ID之间,表明该行记录所在事务在当前事务创建的时候处于活动状态,在活跃列表中遍历发现...继续查看该记录的第三个最新版本trx5,也介于当前活跃事务列表最小事务ID和最大事务ID之间,表明该行记录所在事务在当前事务创建的时候处于活动状态,但遍历发现该版本并不在活跃事务列表中,说明trx5对应事务已经提交...3. binlog持久化策略(sync_binlog) binlog作为Server层的日志系统,主要以events的形式顺序纪录了数据库的各种操作,同时可以纪录每次操作所花费的时间。...总结一下,本文是数据库事务系列文章的第三篇,核心介绍了MySQL的单机跨行事务模型,其中对隔离性所涉及到的锁技术、MVCC机制进行了比较详细的说明。

    1.6K10

    数据库事务系列-MySQL跨行事务模型

    说来和MySQL倒是有缘,毕业的第一份工作就被分配到了RDS团队,主要负责把MySQL弄到云上做成数据库服务。...再查看该行记录的第二个最新版本为trx7,与当前事务read_view对比发现,trx7介于当前活跃事务列表最小事务ID和最大事务ID之间,表明该行记录所在事务在当前事务创建的时候处于活动状态,在活跃列表中遍历发现...继续查看该记录的第三个最新版本trx5,也介于当前活跃事务列表最小事务ID和最大事务ID之间,表明该行记录所在事务在当前事务创建的时候处于活动状态,但遍历发现该版本并不在活跃事务列表中,说明trx5对应事务已经提交...3. binlog持久化策略(sync_binlog) binlog作为Server层的日志系统,主要以events的形式顺序纪录了数据库的各种操作,同时可以纪录每次操作所花费的时间。...总结一下,本文是数据库事务系列文章的第三篇,核心介绍了MySQL的单机跨行事务模型,其中对隔离性所涉及到的锁技术、MVCC机制进行了比较详细的说明。

    2K20

    MySQL数据库事务隔离级别

    数据库隔离级别有四种,应用《高性能mysql》一书中的说明: 然后说说修改事务隔离级别的方法: 1.全局修改,修改mysql.ini配置文件,在最后加上 1 #可选参数有:READ-UNCOMMITTED...本来默认也是这个级别 2.对当前session修改,在登录mysql客户端后,执行命令: 要记住mysql有一个autocommit参数,默认是on,他的作用是每一条单独的查询都是一个事务,并且自动开始...A,B,在A中修改事务隔离级别,在B中开启事务并修改数据,然后在A中的事务查看B的事务修改效果: 1.READ-UNCOMMITTED(读取未提交内容)级别 1)A修改事务级别并开始事务,对user表做一次查询...REPEATABLE-READ(可重读) 1)A设置事务隔离级别,进入事务后查询一次 2)B开始事务,并对user表进行修改 3)A查看user表数据,数据未发生改变 4)B提交事务 5)A再进行一次查询...,结果还是没有变化 6)A提交事务后,再查看结果,结果已经更新 7)A重新开始事务,并对user表进行修改 8)B表重新开始事务,并对user表进行修改,修改被挂起,直到超时,对另一条记录修改却成功,说明

    3.1K71

    【MySQL】:数据库事务管理

    前言 事务是数据库管理系统中非常重要的概念,它保证了数据库操作的一致性和完整性。在实际应用中,我们经常需要处理复杂的数据操作,而事务的特性和隔离级别对数据库操作的并发性和稳定性有着重要影响。...注意: 默认MySQL的事务是自动提交的,也就是说,当执行完一条DML语句时,MySQL会立即隐式的提交事务。 二....2.2 控制事务一 查看/设置事务提交方式 SELECT @@autocommit ; SET @@autocommit = 0 ; 提交事务 COMMIT; 回滚事务 ROLLBACK; 注意: ​...事务隔离级别 为了解决并发事务所引发的问题,在数据库中引入了事务隔离级别。...不可重复读 幻读 Read uncommitted √ √ √ Read committed × √ √ Repeatable Read(默认) × × √ Serializable × × × 查看事务隔离级别

    1K10
    领券