【MySQL】事务
后端开发中转账、订单等场景的数据异常根源多在MySQL事务。它是保障数据一致的关键也是开发者必备的核心技能。1.事务的概念事务是把一组SQL语句给封装成一条事务要么全部成功要么全部失败。2. ACID特性a.原子性(A)一个事务的所有操作要不全部成功要么全部失败当然失败会回滚这是支持事务的最基本的特性。b.一致性©事务执行结束之后保证数据正确且符合预期。c.隔离性(I)每个事务之间相互独立互不影响。d.持久性(D)事务一旦成功就需要存储在存储介质中即使系统崩溃或断电数据也不会丢失。3. 使用事务(1).查看是否支持事务show engines; – 用于查看数据库存储引擎在MySQL中是InnoDB存储引擎Transactions是事务。yes即支持(2).事务使用语法start transaction; – 开启事务 在提交或者回滚之前的SQL语句都是事务中的sqlbegin; – 开启事务和上面那条语句是一样的效果commit; – 提交事务rollback; – 回滚事务4. 保存点在事务中也可以设置保存点可以直接回滚到指定保存点。语法savepoint 保存点名; – 创建保存点rollback to 保存点名; – 回滚到指定保存点5. 自动/手动提交事务查看是否开启自动提交事务show variables like ‘autocommit’;一条 DML 语句 一条 insert 或 一条 update 或 一条 deleteValue含义ON默认状态自动提交开启每执行一条 DML 语句INSERT/UPDATE/DELETEMySQL 会立即自动COMMIT语句效果永久生效无法用ROLLBACK撤销。OFF自动提交关闭执行 DML 语句后不会自动提交必须手动执行COMMIT才会生效ROLLBACK可撤销未提交的操作。注只要打开事务只有commit才能持久化6. 事务的隔离级别隔离级别英文全称解决的问题存在的问题并发性能读未提交READ UNCOMMITTED无最低级别脏读、不可重复读、幻读最高读已提交Oracle 默认READ COMMITTED脏读不可重复读、幻读较高可重复读MySQL 默认REPEATABLE READ脏读、不可重复读幻读InnoDB 已解决中等串行化SERIALIZABLE所有问题完全隔离并发性能极差单线程执行a.脏读一个事务读取到另外一个事务未提交的修改数据。比如 A 转账给 B未提交B 却看到余额增加。b.不可重复读一个事务多次读取同一条数据得到了不同的数据。比如 A 事务读了余额B 事务修改并提交A 再读余额变了c.幻读 同一事务内多次执行同一查询结果集行数不一致比如 A 查余额 1000 的账户有 2 个B 新增 1 个并提交A 再查变成 3 个。7. 查看和设置事务的隔离级别SELECT transaction_isolation; – 查看事务的隔离级别SET [SESSION/GLOBAL] TRANSACTION ISOLATION LEVEL 隔离级别; – 设置隔离级别GLOBAL设置全局事务的隔离级别。SESSION只针对当前连接的会话事务的隔离级别会话断开之后对其不影响。

相关新闻

Qt+FFmpeg 实现摄像头采集并录制 YUV 格式视频

Qt+FFmpeg 实现摄像头采集并录制 YUV 格式视频

一、前言本文主要记录通过 Qt 结合 FFmpeg 实现从摄像头采集视频数据,并将采集到的数据保存为 YUV 格式文件的过程。涉及 FFmpeg 设备操作、Qt 多线程编程等核心知识点,适合有一定 Qt 和 FFmpeg 基础的开发者学习参考。二、环境准备开发框架:…

2026/5/17 9:16:17 阅读更多 →
从0到1:Android组件化架构搭建秘籍

从0到1:Android组件化架构搭建秘籍

从0到1:Android组件化架构搭建秘籍 组件化架构:为何如此重要? 在 Android 开发的漫漫征途中,我们常常会面临项目复杂度如滚雪球般增长的困境。当项目还处于 “幼年时期”,功能简单,代码量也相对较少&#x…

2026/5/17 9:16:16 阅读更多 →
Git merge 策略

Git merge 策略

Git Merge 策略:深入理解代码合并的艺术 引言 在团队协作开发中,Git 作为分布式版本控制系统扮演着至关重要的角色。而合并(Merge)操作作为 Git 中的核心功能,直接影响着团队的开发效率和代码质量。本文将深入探讨 Git…

2026/5/17 9:16:16 阅读更多 →

最新新闻

OSXPhotos:macOS 照片库的命令行管理工具

OSXPhotos:macOS 照片库的命令行管理工具

文章目录OSXPhotos:macOS 照片库的命令行管理工具能做什么模板系统是亮点安装和使用适合谁用OSXPhotos:macOS 照片库的命令行管理工具 用 Mac 的人,照片库里多少都攒了几千上万张照片。时间一长,想找某张特定的照片,或…

2026/7/3 8:00:12 阅读更多 →
成年人必看!治愈一生的经典名著《小王子》

成年人必看!治愈一生的经典名著《小王子》

成年人必读的治愈经典,《小王子》从来不止是儿童童话,更是成年人的人生教科书。长大后才读懂,这本经典治愈书籍藏着我们所有的迷茫、遗憾与成长,也是当之无愧的人生必读名著。很多人年少读《小王子》,只记住了温柔的童…

2026/7/3 7:58:12 阅读更多 →
国际期货日内交易最佳交易时段

国际期货日内交易最佳交易时段

国际期货全天近 24 小时连续交易,不同时段资金量、波动幅度、流动性差异巨大,日内短线想要降低滑点、把握有效行情,优先选择欧美重叠盘,分三档时段区分优劣。最差时段为亚盘,北京时间 7:00 至 15:00,仅有亚…

2026/7/3 7:52:11 阅读更多 →
第19章:Celery 分布式任务队列深度解析

第19章:Celery 分布式任务队列深度解析

1. 项目背景 "我上传了一份 200 页的 PDF 到知识库,点击’保存并处理’后页面显示索引进度 0%。等了 30 分钟终于跳到 100%,中间我刷新了 5 次页面,每次都以为卡死了。"这是新手使用 Dify 知识库最常见的困惑。30 分钟里,Dify 的后台 Celery Worker 一直在拼命工…

2026/7/3 7:52:11 阅读更多 →
如何快速提升你的英雄联盟游戏体验:League Akari的完整指南

如何快速提升你的英雄联盟游戏体验:League Akari的完整指南

如何快速提升你的英雄联盟游戏体验:League Akari的完整指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾在英雄选择阶段…

2026/7/3 7:52:11 阅读更多 →
解决Linux下802.11ac无线网卡驱动兼容性难题:rtl8812AU_8821AU内核模块深度解析

解决Linux下802.11ac无线网卡驱动兼容性难题:rtl8812AU_8821AU内核模块深度解析

解决Linux下802.11ac无线网卡驱动兼容性难题:rtl8812AU_8821AU内核模块深度解析 【免费下载链接】rtl8812AU_8821AU_linux rtl8812AU_8821AU linux kernel driver for AC1200 (801.11ac) Wireless Dual-Band USB Adapter 项目地址: https://gitcode.com/gh_mirror…

2026/7/3 7:50:10 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻