有哪些企业可以做招聘的网站有哪些内容,网站优怎么做,建设银行 福建分行招聘网站,重庆营销网站建设一、MySQL事务 
MySQL 中的 事务#xff08;Transaction#xff09; 是一种将多个 SQL 操作打包成一个整体执行的机制#xff0c;确保数据的一致性和可靠性。事务广泛用于需要原子性的数据操作#xff0c;比如转账、订单创建等。 
事务的四大特性#xff08;ACID#xff…一、MySQL事务 
MySQL 中的 事务Transaction 是一种将多个 SQL 操作打包成一个整体执行的机制确保数据的一致性和可靠性。事务广泛用于需要原子性的数据操作比如转账、订单创建等。 
事务的四大特性ACID 
特性说明原子性Atomicity一个事务中的操作要么全部成功要么全部失败不可分割。一致性Consistency事务执行前后数据库处于一致状态遵守约束规则、业务规则。隔离性Isolation多个事务互不干扰彼此隔离。事务并发时数据仍一致。持久性Durability一旦事务提交修改永久保存即使系统崩溃也不会丢失。 
二、事务基本语句 
事务基本语句InnoDB 引擎支持事务 
语句作用START TRANSACTION; 或 BEGIN;显式开始一个事务COMMIT;提交事务永久保存所有操作ROLLBACK;回滚事务撤销所有操作SAVEPOINT 保存点名;设置一个保存点用于部分回滚ROLLBACK TO 保存点名;回滚到某个保存点仅撤销一部分操作SET autocommit  0;关闭自动提交进入手动事务控制状态SET autocommit  1;恢复自动提交默认 
注意 MySQL 默认是自动提交模式即每条语句自动提交。 
示例一基本事务流程 
START TRANSACTION;UPDATE accounts SET balance  balance - 100 WHERE id  1;
UPDATE accounts SET balance  balance  100 WHERE id  2;COMMIT;如中途出错也可用 
ROLLBACK;示例二使用保存点SAVEPOINT 
START TRANSACTION;UPDATE users SET score  score  10 WHERE id  1;SAVEPOINT sp1;UPDATE users SET score  score - 50 WHERE id  2;ROLLBACK TO sp1;COMMIT;注意 
第二条 UPDATE 被撤销第一条仍然生效。 
三、事务隔离级别Isolation Level 
事务隔离级别定义了一个事务能看到其他事务对数据库的更改程度。 
级别可解决的问题会出现的问题MySQL默认READ UNCOMMITTED无会出现脏读❌READ COMMITTED解决脏读可能出现不可重复读❌REPEATABLE READ (默认)解决脏读和不可重复读可能出现幻读✅SERIALIZABLE解决所有问题脏读、不可重复读、幻读并发性能差❌ 
设置事务隔离级别 
SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL REPEATABLE READ;四、事务中的日志机制 
日志类型作用Undo Log撤销未提交的事务、实现 MVCCRedo Log保证事务提交后数据的持久性Binlog用于主从复制、增量备份 InnoDB 使用 “先写日志、后写磁盘” 策略避免崩溃丢数据。 五、事务引擎InnoDB 
MySQL 中支持事务的主要引擎是 InnoDB它是 MySQL 的默认存储引擎也是最常用于高可靠性、高并发场景的引擎。 
1. InnoDB 引擎简介 
特性是否支持说明支持事务ACID✅完整支持事务四大特性行级锁定✅并发控制粒度细避免表级锁带来的性能问题外键约束✅支持 FOREIGN KEY 语法进行引用完整性约束自动崩溃恢复✅通过 Redo Log重做日志 和 Undo Log回滚日志 实现多版本并发控制MVCC✅实现高并发下的非阻塞读操作支持全文索引✅5.6支持 FULLTEXT 索引适用于文本搜索表空间管理✅支持独立表空间 (innodb_file_per_table) 
2. InnoDB 事务核心机制 
InnoDB 通过以下几项核心机制实现高可靠事务性 
1 Undo Log回滚日志 
在数据修改前记录一份旧值用于回滚或 MVCC。保证事务回滚和一致性视图。存储在 undo segment 中自动清理。 
2Redo Log重做日志 
记录已提交事务对数据的修改操作。用于 崩溃恢复防止宕机后数据丢失。先写日志再写磁盘WALWrite-Ahead Logging。由 ib_logfile0/1 或 #innodb_redo 文件组成。 
3MVCC多版本并发控制 
实现 快照读避免加锁提高读性能。每条记录有隐藏的事务ID和回滚指针。只有 REPEATABLE READ 和 READ COMMITTED 使用 MVCC。 
3. 事务隔离级别Isolation Level 
InnoDB 支持 SQL 标准的 4 种隔离级别 
隔离级别是否支持脏读是否支持不可重复读是否支持幻读InnoDB 默认READ UNCOMMITTED✅✅✅否READ COMMITTED❌✅✅否REPEATABLE READ❌❌✅✅ 默认SERIALIZABLE❌❌❌否 InnoDB 通过 间隙锁Gap Lock 解决幻读而不是真正序列化。 六、事务并发问题 
并发问题描述影响隔离级别脏读读到未提交事务的数据仅 SERIALIZABLE  REPEATABLE READ 避免不可重复读两次查询同一记录结果不同别的事务修改了数据REPEATABLE READ 能避免幻读两次查询满足条件的记录数不同别的事务插入了新数据SERIALIZABLE 避免 
七、典型示例——银行转账事务 
START TRANSACTION;UPDATE accounts SET balance  balance - 100 WHERE id  1;
UPDATE accounts SET balance  balance  100 WHERE id  2;-- 出错则回滚
-- IF (error) THEN
--     ROLLBACK;
-- ELSE
COMMIT;注意 
如果两个 UPDATE 都成功执行则 COMMIT数据写入磁盘如果任一语句执行失败例如账户不存在、余额不足等应手动调用 ROLLBACK 撤销所有操作。 
八、两阶段提交事务Binlog 
InnoDB 为保证与 Binlog 一致使用两阶段提交机制prepare → commit 
写 Redo Log prepare写 BinlogRedo Log commit 保证主从一致性避免部分提交。 九、MySQL事务常见问题与答案 
问题简要答案InnoDB 如何保证事务原子性Undo Log 记录原始版本失败时可回滚如何防止脏读设置隔离级别为 READ COMMITTED 或更高什么是幻读怎么解决并发插入导致结果数量变化使用 Gap Lock / SERIALIZABLE 隔离级别Redo Log 和 Binlog 有何不同Redo 是物理日志用于崩溃恢复Binlog 是逻辑日志用于复制与备份