当前位置: 首页 > wzjs >正文

wordpress后台怎么进的广州网络seo公司

wordpress后台怎么进的,广州网络seo公司,天津建设工程信息网网上报名,日照网站建设吧MySQL 事务详解 一、事务是什么?为什么需要事务? 二、事务的四大特性(ACID)举例说明:转账操作 三、MySQL 中事务的支持四、事务分类:隐式 vs 显式1. 隐式事务(自动提交)2. 显式事务&…

MySQL 事务详解

    • 一、事务是什么?
      • 为什么需要事务?
    • 二、事务的四大特性(ACID)
      • 举例说明:转账操作
    • 三、MySQL 中事务的支持
    • 四、事务分类:隐式 vs 显式
      • 1. 隐式事务(自动提交)
      • 2. 显式事务(手动控制)
    • 五、事务的操作语句
      • 使用保存点(SAVEPOINT)
    • 六、并发事务带来的问题
    • 七、事务隔离级别
    • 八、InnoDB 如何实现事务
      • 1. 重做日志(Redo Log)
      • 2. 撤销日志(Undo Log)
      • 3. MVCC(多版本并发控制)
    • 九、最佳实践与注意事项
    • 十、总结

一、事务是什么?

在数据库系统中,事务(Transaction) 是指一组操作序列,这些操作要么全部执行成功,要么全部不执行,是数据库操作的基本单位,主要用于保证数据的一致性和完整性。

为什么需要事务?

在多个 SQL 操作依赖于彼此时,若某条操作失败,必须撤销之前的操作以防止数据不一致。例如:

UPDATE account SET balance = balance - 100 WHERE user = 'A';
UPDATE account SET balance = balance + 100 WHERE user = 'B';

如果第二条语句失败,而第一条已经生效,就会导致数据不一致。事务机制可以确保这种情况不会发生。


二、事务的四大特性(ACID)

特性含义
原子性(Atomicity)事务中的所有操作要么全部成功,要么全部失败,不会停留在中间状态。
一致性(Consistency)事务前后数据库保持一致状态,不会因事务失败造成数据损坏。
隔离性(Isolation)并发事务之间互不干扰,每个事务的执行不会被其他事务看到。
持久性(Durability)一旦事务提交成功,结果将永久保存到数据库,即使系统崩溃也不丢失。

举例说明:转账操作

步骤操作说明
1A账户减100元原子性的一部分
2B账户加100元必须与上一步一同成功
3事务提交所有变更永久保存
若第2步失败,事务回滚保证一致性、原子性

三、MySQL 中事务的支持

不是所有存储引擎都支持事务,常见如下:

存储引擎是否支持事务是否支持外键
InnoDB
MyISAM
MEMORY
TokuDB

查看支持情况:

SHOW ENGINES;

四、事务分类:隐式 vs 显式

1. 隐式事务(自动提交)

MySQL 默认自动提交每一条 DML 语句:

UPDATE users SET age = 30 WHERE id = 1; -- 自动提交

2. 显式事务(手动控制)

当需要将多条语句当作一个整体执行时,使用显式事务:

SET autocommit = 0; -- 禁用自动提交
START TRANSACTION;
UPDATE users SET balance = balance - 100 WHERE name = 'A';
UPDATE users SET balance = balance + 100 WHERE name = 'B';
COMMIT; -- 提交事务
-- ROLLBACK; -- 取消事务

推荐使用 BEGIN 作为 START TRANSACTION 的简洁写法。


五、事务的操作语句

语句含义
START TRANSACTION / BEGIN显式开启事务
COMMIT提交事务,持久保存变更
ROLLBACK回滚事务,撤销变更
SAVEPOINT设置事务保存点(用于局部回滚)
ROLLBACK TO SAVEPOINT回滚到某个保存点

使用保存点(SAVEPOINT)

START TRANSACTION;
UPDATE t SET score = 90 WHERE id = 1;
SAVEPOINT sp1;
UPDATE t SET score = 100 WHERE id = 1;
ROLLBACK TO sp1; -- 回滚到sp1,score回到90
COMMIT;

六、并发事务带来的问题

在并发执行多个事务时,若没有合理控制,会产生以下问题:

并发问题描述
脏读读到未提交事务修改的数据
不可重复读同一事务两次读到不同数据
幻读同一查询两次返回行数不同(新增/删除行)

七、事务隔离级别

事务的隔离级别定义了事务间可见的数据范围,MySQL 支持如下四种:

隔离级别描述能否避免并发问题
READ UNCOMMITTED允许读未提交的数据(最低)❌脏读、不可重复读、幻读
READ COMMITTED只能读已提交的数据✅脏读 ❌不可重复读、幻读
REPEATABLE READ可重复读(MySQL 默认)✅脏读 ✅不可重复读 ❌幻读
SERIALIZABLE串行执行(最高隔离)✅全部避免,但性能最低

设置隔离级别:

-- 查询当前隔离级别
SELECT @@transaction_isolation;-- 修改隔离级别(会话级)
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;

八、InnoDB 如何实现事务

InnoDB 使用以下机制来支持事务:

1. 重做日志(Redo Log)

用于保证持久性,即使崩溃后也能恢复事务提交的结果。

2. 撤销日志(Undo Log)

用于支持原子性和一致性。当事务回滚时,Undo Log 可以撤销操作。

3. MVCC(多版本并发控制)

实现事务的隔离性(特别是可重复读),通过版本控制每一行数据,允许事务读到历史版本数据。


九、最佳实践与注意事项

  • 显式开启事务时,要显式 COMMITROLLBACK,否则锁会长期占用。
  • 控制事务作用域,不要将事务保持过长时间。
  • 多个事务同时操作数据时要注意锁竞争与死锁问题。
  • 尽量使用合适的隔离级别以提升性能。
  • 结合业务需求设置合适的回滚点 SAVEPOINT

十、总结

MySQL 事务机制是保证数据一致性、完整性的重要基础。掌握事务的使用方法、隔离级别、InnoDB 实现原理,以及并发控制策略,是每位开发者和 DBA 的必备技能。


http://www.dtcms.com/wzjs/28448.html

相关文章:

  • 旅游网站开发与设计论文seozou是什么意思
  • 旅游网站建设的利益凡科建站的免费使用
  • 同城做推广哪个网站好推销一个产品的方案
  • 网站如何验证登陆状态网站开发的一般流程
  • 站长工具 怎么做网站地图seo站长工具 论坛
  • 阿里巴巴国际站入驻费用及条件我想做电商怎么加入
  • wordpress google api株洲seo推广
  • 课程中心网站建设内容国内建站平台
  • 湖南做网站价格网络销售是什么
  • 做网站目的aso搜索排名优化
  • 浏览器如何做购物网站汉中网站seo
  • 网站制作报价单模板查排名的软件有哪些
  • 阿里云官方网站nba排名最新赛程
  • 国外域名注册哪个网站好免费网站建设平台
  • 网络服务公司简介企业seo推广的绝密诀窍曝光
  • 东莞注塑切水口东莞网站建设互动营销的案例有哪些
  • 中国企业登记网官网北京度seo排名
  • 平顶山网站建设电话广东疫情最新资讯
  • 3.建设营销型网站流程电商推广平台有哪些
  • 广东住房和城乡建设厅官方网站百度seo找哪里
  • 多种网站建设网络营销图片
  • 搭建网站需要什么软件百度用户服务中心官网电话
  • 简述站点推广有哪些方式百度手机助手安卓版下载
  • 锦州网站建设案例app拉新平台有哪些
  • 镇江网站建设推广公司百度网站推广费用多少
  • java做网站需要数据库吗百度快照是干嘛的
  • 网站怎么做导航条搜索引擎营销经典案例
  • 网站favicon图标网络营销的推广方式都有哪些
  • 哪个网站做黑色星期五订酒店活动如何在百度发广告推广
  • 可以上传软件的网站设计公司网站设计