-
事务的使用是否影响性能。
MySQL的事务支持与MySQL服务器本身无关,而是与存储引擎有关:不支持事务,用于只读程序以提高性能:ACID事务,行级锁,并发DB:支持事务。
事务是一组连续的数据库操作,就好像它是一个工作单元一样。 换句话说,除非组内的每个单独操作都成功,否则它永远不会是一个完整的事务。 如果事务中的任何操作失败,则整个事务将失败。
-
首先,让我们看一下 student 表中的数据。
输入 start transaction 以启动交易。
更新第一行数据和数据,然后让奈让检查结果,发现更新成功。
注意,回滚从这里开始。 输入回滚但是,如果查看每亩租后第一行的数据,可以发现以前的数据已经随着新数据变回了。
最后,我们看一下整个表,发现它仍然和以前一样。
-
什么是交易?
MySQL事务主要用于处理操作量大、复杂度高的数据。 例如,在人事管理系统中,如果删除一个人,不仅需要删除该人的基本信息,还需要删除与该人相关的信息,如邮箱、文章等,这样这些数据库操作语句就构成了一个交易!
在MySQL中,只有使用INNODB数据库引擎的数据库或表才支持事务。
事务可用于维护数据库的完整性,确保批量执行 SQL 语句或全部执行。
事务用于管理插入、更新和删除语句。
一般来说,事务必须满足四个条件(酸):原子性(或不可分割性)、一致性(一致性)、隔离性(也称为独立性)和持久性(持久性)。
原子性:事务中的所有操作要么已完成,要么未完成,并且不会在中间结束。 如果在事务执行过程中发生错误,它将回滚到事务开始前的状态,就好像事务从未执行过一样。
一致性:在事务结束之前和之后,数据库的完整性不会受到损害。 这意味着写入的数据必须完全符合所有预设规则,包括数据的准确性、数据的串联以及后续数据库自发完成预定工作的能力。
隔离:数据库允许多个并发事务同时读取、写入和修改其数据的能力,从而防止在并发执行多个事务时因交叉执行而导致的数据不一致。 事务隔离有不同级别,包括读取未提交、读取提交、可重复读取和可序列化。
持久性:事务完成后,对数据的修改是永久性的,即使系统出现故障也不会丢失。
默认情况下,事务是自动提交的,即在执行 SQL 语句后立即执行提交操作。 因此,要显式打开事务,必须使用命令 begin 或 start transaction,或执行命令 set autocommit=0 以禁用当前会话的自动提交。
来自 Sloth Academy - 一站式数据知识平台。
-
事务中有多个操作。
它必须一起完成,或者根本不做。
如果由于任何原因无法完成操作,则已完成的内容将被回滚。
-
事务处理在各种管理系统中有着广泛的应用,如人事管理系统,许多同步数据库操作都需要事务处理。 例如,在人事管理系统中,如果删除一个人,就需要删除该人的基本信息,还要删除与该人相关的信息,如邮箱、文章等,这样这些数据库操作语句就构成了一个交易! 删除了 SQL 语句。
delete from userinfo where ~~
delete from mail where ~~
delete from article where~~
如果没有交易,在你删除的过程中,假设出了什么问题,只执行了第一句话,那么后果是难以想象的!
但是通过交易。 如果出现删除错误,可以通过简单地回滚来取消删除(实际上,只要您没有提交,您实际上就不会执行删除)。
一般来说,在业务级应用中,必须考虑事务处理!
事务处理也被广泛使用,例如,如果您有任务 A 和任务 B,并且您需要成功执行 A 和 B 才能进行下一步,则需要使用事务处理。 如果 A 或 B 失败,则所有数据都将回滚到执行前的状态。
MySQL事务主要有两种类型:
1. 使用 begin、rollback 和 commit 来实现它。
开始开始交易。
回滚事务。
提交事务确认。
2. 直接使用 set 更改 MySQL 的自动提交模式。
set autocommit=0 禁用自动提交。
设置 autocommit=1 以启用自动提交。
-
它不必显式打开。 对于涉及一系列多个语句的操作,如果需要确保所有事务都成功或全部失败而没有中间状态,则必须显式启用事务。
对于单个操作查询语句,如果使用 InnoDB 存储引擎,则无需显式启用事务,因为数据库引擎将自动为单个 SQL 操作查询隐式启用事务。
例如:insert into t2(id,name) valuse('001','abc'),('002','cfg'),('003','hij');
如果语句在数据表中插入了三条记录,则数据库引擎 (innodb) 会隐式启动事务,以确保所有三条记录都已成功插入或全部失败而没有中间状态。 用户无需考虑交易,由系统自动处理。
1.有效期后7天后可正常使用。
7天内为短期逾期,可正常使用。 需要支付逾期罚息并偿还欠款,芝麻点将相应减少,花呗金额将减少。 >>>More