您的位置:首页 > 科技 > 能源 > 游戏制作软件有哪些_孝感网站建设软件_深圳推广服务_石家庄百度快速排名优化

游戏制作软件有哪些_孝感网站建设软件_深圳推广服务_石家庄百度快速排名优化

2025/3/31 22:38:24 来源:https://blog.csdn.net/2302_80853925/article/details/146612090  浏览:    关键词:游戏制作软件有哪些_孝感网站建设软件_深圳推广服务_石家庄百度快速排名优化
游戏制作软件有哪些_孝感网站建设软件_深圳推广服务_石家庄百度快速排名优化

事务详解

事务是关系型数据库的核心特性之一,用于确保数据操作的一致性和可靠性

目录

  • 基本概念
  • 事务操作
  • ACID特性
  • 并发事务问题
  • 隔离级别
  • 最佳实践

基本概念

事务(Transaction)是一组原子性的数据库操作序列,具有以下核心特征:

(事务操作要么全部成功,要么全部回滚)

  • 不可分割:事务中的操作作为整体执行
  • 状态一致性:无论成功与否,总能保持数据库的合法状态
  • 执行边界:明确的开始(BEGIN)和结束(COMMIT/ROLLBACK)标记

事务操作

管理方式对比

方式自动提交控制方法适用场景
隐式事务开启(默认)系统自动管理简单单语句操作
显式事务关闭手动COMMIT/ROLLBACK复杂多步骤操作

操作语法

-- 方式1:修改自动提交设置
SET @@autocommit = 0; -- 关闭自动提交
-- 执行DML语句...
COMMIT; -- 成功时提交
ROLLBACK; -- 失败时回滚-- 方式2:显式事务块
START TRANSACTION;
-- 执行DML语句...
COMMIT; -- 成功提交
ROLLBACK; -- 失败回滚

完整示例

-- 账户表结构
CREATE TABLE account(id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',name VARCHAR(10) COMMENT '账户名',money INT COMMENT '余额'
) COMMENT '银行账户';-- 显式事务示例
SET @@autocommit = 1; -- 确保自动提交开启
BEGIN;
UPDATE account SET money = money - 1000 WHERE name = 'wjj';
UPDATE account SET money = money + 1000 WHERE name = 'jjw';
COMMIT;-- 异常处理示例
START TRANSACTION;
SAVEPOINT before_transfer; -- 创建保存点
UPDATE account SET money = money - 2000 WHERE name = 'wjj';
-- 假设此时发现异常
ROLLBACK TO before_transfer; -- 回滚到保存点
COMMIT;

ACID特性

特性描述实现机制
原子性事务是不可分割的最小工作单元Undo Log(回滚日志)
一致性保证数据库始终从一种合法状态转换到另一种合法状态约束检查 + 事务机制
隔离性并发事务之间相互隔离MVCC + 锁机制
持久性事务提交后对数据库的修改是永久的Redo Log(重做日志)

并发事务问题

典型并发问题

问题类型现象描述隔离级别解决方案
脏读读取到其他事务未提交的数据Read Committed及以上
不可重复读同一查询多次访问结果不同(数据被修改)Repeatable Read及以上
幻读同条件查询结果集数量变化(数据被新增/删除)Serializable

事务隔离级别

标准隔离级别对比

隔离级别脏读不可重复读幻读性能
Read Uncommitted✔️✔️✔️最高
Read Committed✖️✔️✔️较高
Repeatable Read(默认)✖️✖️✔️中等
Serializable✖️✖️✖️最低

隔离级别管理

-- 查看当前隔离级别
SELECT @@TRANSACTION_ISOLATION;-- 设置全局隔离级别(需重启会话)
SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ;-- 设置会话隔离级别
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

最佳实践

  1. 事务粒度控制

    • 保持事务简短(尽量在1秒内完成)
    • 避免事务中包含用户交互
  2. 隔离级别选择

    • 默认使用Repeatable Read
    • 高并发场景可降级为Read Committed
  3. 异常处理

    • 配合SAVEPOINT实现部分回滚
    • 使用DECLARE...HANDLER捕获处理错误
  4. 性能优化

    • 长事务定期检查点
    • 合理使用行锁/表锁

附:MySQL官方事务文档 链接

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com