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

数据库基础

一.事务

事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起像系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。

MySQL的事务默认是自动提交的,也就是说,执行一条DML语句,就会自动提交事务。

1.事务操作

查看/设置事务提交方式,如果为1就是自动提交,如果为0则是手动提交。

如果执行操作(增删改查)的时候正常执行,就需要执行提交事务才可以正常保存数据,如果执行过程中出现异常,就可以执行回滚事务的操作回到之前的状态,可以保证数据的正确性和完整性。

select @@autocommit; //查看事务提交方式 set @@autocommit=0; //设置成手动提交 commit; //提交事务 savepoint B; //设置保存点 rollback; //回滚事务 rollback to B; //回滚到保存点
第二种事务操作
start transaction 或者begin; //开启事务 commit; //提交事务 rollback; //回滚事务
2.事务的四大特性(ACID)
  • 原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。

  • 一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。

  • 隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作的独立环境下运行。

  • 持久性(Durability):事务一旦提交或回滚,他对数据库中的数据的改变是永久的。

3.并发事务问题
  • 脏读:一个事务读到另外一个事务还没提交的数据。
  • 不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称为不可重复读。
  • 幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,就像有幻影一样。
4.事务的隔离级别
  • Read uncommitted:读未提交,三个并发事务问题都会出现
  • Read committed:读以提交,脏读不会出现
  • Repeatable Read(默认):可重复读,会出现幻读
  • Serializable:串行化,都不会出现

注意:事物隔离级别越高,数据越安全,但是性能越低。

select @@transaction_isilation;//查看事务隔离级别 set [session(当前客户端窗口)|global(所有窗口)] transaction isilation level{四个隔离级别}; set global transaction isolation level read committed;
http://www.cnnetsun.cn/news/95485.html

相关文章:

  • 基于单片机的家居净化器设计与实现
  • LeetCode 热题 100——图论——实现 Trie (前缀树)
  • 揭秘Java:深度解析线程调度算法!
  • 三大电商API应用对比:淘宝京东拼多多谁能笑到最后?
  • 2025年亲测7个降a率工具:AIGC率90%怎么降低ai?(附免费降AI1000字数)
  • ACL实验报告
  • 别再熬夜赶论文?6款AI工具帮你告别恐惧写作无压力!
  • 一键导入书签,首页替代神器!批量去重、自动备份,维护不再头疼
  • 土著刷题新功能解锁:跳题作答
  • Yolo模型TensorRT-C++推理实战指南
  • LobeChat能否支持暗能量建模?宇宙加速膨胀机制理论推演
  • 用python写一个简单的ros话题发布
  • 基于Java Swing的排序算法可视化器(1)
  • 不敢相信!这5个良心软件,功能强大到媲美付费版!
  • 实邦电子嵌入式开发服务如何,是否值得信赖?
  • 基于PLC控制的四路抢答器设计
  • 鸿蒙 Flutter 全场景开发实战指南:从环境搭建到分布式应用落地(2025 最新版)
  • LobeChat销售话术优化建议生成
  • 11章 像素和顶点数据导出 - “Vega“ 7nm Instruction Set ArchitectureReference Guide
  • 15人团队,60天,1000万美金ARR:Lovable正在重新定义“软件开发”
  • TensorFlow调试报错看不懂?LobeChat帮你解读
  • 2026届秋招AI岗位狂潮:大厂招聘激增10倍,这份成功上岸攻略不容错过!
  • 1、掌握 Linux 脚本编程:从基础到高级应用
  • 3、Bash脚本编写:基础与进阶
  • C#教程(小部分)
  • HNU 编译系统 作业1
  • vue基于Springboot框架的写字楼危险品管理信息系统的设计和实现
  • LobeChat现场引导标识文案
  • Vue3使用pinia做全局状态管理的简单示例
  • 2025计算机能力竞赛暨城市联赛——算法编程赛道【秋季赛】(二)