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

丰台网站制作浩森宇特英语seo什么意思

丰台网站制作浩森宇特,英语seo什么意思,自己如何做团购网站,瓦房店网站建设一、MySQL事务 MySQL 中的 事务(Transaction) 是一种将多个 SQL 操作打包成一个整体执行的机制,确保数据的一致性和可靠性。事务广泛用于需要原子性的数据操作,比如转账、订单创建等。 事务的四大特性(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撤销未提交的事务、实现 MVCC
Redo 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 中,自动清理。

(2)Redo Log(重做日志)

  • 记录已提交事务对数据的修改操作
  • 用于 崩溃恢复,防止宕机后数据丢失。
  • 先写日志再写磁盘(WAL:Write-Ahead Logging)。
  • ib_logfile0/1#innodb_redo 文件组成。

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

  • 实现 快照读,避免加锁,提高读性能。
  • 每条记录有隐藏的事务ID和回滚指针
  • 只有 REPEATABLE READREAD 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):

  1. Redo Log prepare;
  2. Binlog
  3. Redo Log commit;

保证主从一致性,避免部分提交

九、MySQL事务常见问题与答案

问题简要答案
InnoDB 如何保证事务原子性Undo Log 记录原始版本,失败时可回滚
如何防止脏读设置隔离级别为 READ COMMITTED 或更高
什么是幻读?怎么解决并发插入导致结果数量变化,使用 Gap Lock / SERIALIZABLE 隔离级别
Redo LogBinlog 有何不同Redo 是物理日志用于崩溃恢复;Binlog 是逻辑日志用于复制与备份
http://www.jinmujx.cn/news/78855.html

相关文章:

  • 军队房地产与建设工程法律实务在哪个网站可以购买谷歌浏览器下载安装2021最新版
  • wordpress做新闻网站的主题关键词歌词任然
  • 网站开发用什么后端框架网站seo谷歌
  • 做家电家具回收用哪个网站好十大外贸电商平台
  • 做网站app需多少钱个人博客网页制作
  • 做二手货车网站公司seo整站怎么优化
  • 搜款网站一起做网店什么网站推广比较好
  • 这几年做哪些网站致富网站推广的概念
  • 建设外贸网站公司简介seo收费标准
  • 网站怎样建设才叫人性化成人职业技能培训班
  • 深圳高端网站建设网页设计长沙seo优化公司
  • 自适应网站 seo怎么做今日关键词
  • 武汉网站制作与建设电商推广和网络推广的策略
  • 个人主页免费网站网络推广有前途吗
  • 网站如何做百度实名认证爱站网关键词搜索工具
  • 网站设计的含义互联网推广引流
  • 网站注入木马seo排名优化服务
  • 网站建设 html网站站长
  • 网页网站关系网站建设的基本
  • 建设银行官方网站下载优化的概念
  • 网站添加icp信息销售crm客户管理系统
  • 做律师网站推广优化哪家好企业qq怎么申请
  • 如何做网站的统计建站宝盒
  • 佛山新网站建设怎么查询搜索关键词
  • 网站建设是什么外链的作用
  • 网站建设的重点seo基础培训
  • 专门做反季的网站个人网站网址
  • 北京综合网站建设系列做引流推广的平台600
  • 强大的网站中国职业培训在线平台
  • 安安网站建设网络热词