后端开发眼中的数据库——数据库事务

杭州阿里总部五面全过程:一面技术面+二面(项目+技术)+三面(项目经理面)+四面(地区技术负责人面) 个人背景: 开发5年,坐标杭州 金九银十已经过去了,写这篇文章的目的就是与大家谈谈面试方面的经验,心得,就个人方面而言,我之前做过的很多的工作都是面试造核弹,工作拧螺丝。但是不要因为自己是个拧螺丝的就不学哪些难啃的技术。当项目出问题的时候,就是考验技术沉淀的时候。我也迷茫过好长一段时间,学了忘,学了没用,**到底应该怎么成长才能成为一个别人眼中的大神,大牛。**关于面试,关于技术的,我只能说有些路只能靠自己去走,没人可以帮到自己,哪怕偶尔帮一到两次,但是技术的路这么长,总归需要自己独自成长的。 我们遇到每一 阅读详情

  一个或一组SQL语句组成一个执行单元,要求同时成功或同时失败。部分存储引擎(InnoDB)可以支持事务功能。

事务的特点(也就是事务的ACID属性):
  • 原子性,就是不可分割。
  • 一致性,就是符合逻辑,比如转账前后双方总金额不变;提现之后,余额要减少。
  • 隔离性,就是互不干扰,一个事务内部的操作及数据对并发的其他事务是隔离的,可用隔离级别微调。当然,没有并发就谈不上隔离。
  • 持久性,就是不能后悔,无论是其他操作还是数据库故障,都不能影响已经提交的事务(无法篡改历史)。
事务的创建

  原始的增删改查单条语句本身就是一个事务,叫隐性事务,数据库会自动创建。显式事务就需要自行添加事务相关的指令了。
  开发过程中,框架会根据代码的逻辑自动的生成带事务指令的SQL语句,比如设置自动提交的参数,自动添加开启事务、回滚事务和提交事务的指令等。
  开启事务的指令中必须存在“SET AUTOCOMMIT = 0;”,“START TRANSACTION;”则可有可无。

事务隔离性

隔离性引发的问题:

  • 脏读:读了临时的数据。B事务修改了但没提交,最后回滚了的数据,A事务读取了无效的数据。
  • 幻读:读了多出的数据。B事务插入了数据,A事务过程中读了两次发现多了些数据。
  • 不可重复读:读了不同的数据。B事务修改了数据,A事务过程中读了两次发现数据不一样了。

对应问题,数据库有4种事务隔离级别:

  • 读未提交:不设限制,随意读取。
  • 读已提交:只允许事务读取别的事务已经提交的数据,避免脏读。
  • 可重复读:某事务读取过程中不许其他事务修改(插入并不算修改数据),可避免脏读和不可重复读。
  • 串行读取:某事物读取某表时,不许其他事务动这张表,效率极低。
测试工程师如何利用New Relic实现数据驱动的性能监控与瓶颈定位 应用性能监控(APM)是现代软件工程中保障系统稳定与用户体验的核心技术。其原理在于通过部署轻量级探针,实时采集应用代码、数据库查询及外部服务调用的性能数据,形成可观测性。这项技术的价值在于将性能问题从模糊的定性描述转变为精准的量化分析,使团队能够基于数据而非直觉进行决策。在工程实践中,APM广泛应用于性能测试瓶颈定位、生产环境问题根因诊断、变更发布后的性能回归验证以及真实用户体验分析等关键场景。本文以New Relic为例,深入解析测试工程师如何运用其事务分析、分布式追踪等核心功能,并结合性能测试与CI/C 阅读详情

相关推荐

事务对数据库的重要性

所谓事务是用户定义的一个操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

数据库中事务理解

一、定义 事务一系列操作的集合。也可以理解为集合中的一系列操作协作完成事务。 二、特性 事务的特性也成为ACID特性。即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 1.原子性:原子性是指事务中包含的所有操作要么都做,要么都不做,保证数据库是一致的。 2.一致性:一致性是指数据库在事务操作前和事务处理后,其中

iamwiam的博客 1714

人形机器人硬件开发:骨架系统设计全攻略

本文以人形机器人骨架系统为核心研究对象,系统解析其从理论建模到工程实现的全流程设计方法。通过融合刚体力学、材料科学与机器人控制理论,构建"概念基础-理论框架-架构设计-实现机制-实际应用-高级考量-综合拓展"的七层分析体系。重点覆盖运动学/动力学建模、轻量化结构设计、关节模块集成、多物理场耦合优化等关键技术,结合波士顿动力Atlas、本田ASIMO等经典案例,提供从原型设计到量产验证的工程实践指南。

AI天才研究院 1869

前后端交互之数据库

为什么要学习后端和数据库 后端是用来处理数据的,数据库则是用来存储数据的仓库,数据库只有后端语言能操作,前端语言操作不了。 工作环境 后端和数据库必须工作在特定的环境下:服务器。 服务器其实就是一台高级计算机,装有特定的软件。 服务器的获取是需要成本的,所以我们可以选择本地服务器。 本地服务器就是在个人电脑上通过安装一些特定的软件,让个人电脑形成特定的环境,运行后端语言和数据库。 特定的软件可百...

mikkfe的博客 3555

地下水热耦合模拟FEFLOW建模

2.3 依据讲解内容,练习构建地下水数值模型(例二),学会各种源汇项、边界条件、时间序列、节点参数的添加及模拟结果的导出。对于真实模型,学习如何建立概念模型、数学模型,练习模型的各种参数和源汇项输入,进行溶质运移、水热模拟。3.通过多种实践案例应用,掌握实践工作中常见项目的模型搭建及特殊问题处理方法。4.1学习水热模型抽灌模式,网格剖分、边界条件、初始温度场赋值。3.3练习模型的各种参数和源汇项输入,进行水流和溶质运移模拟。2.掌握水热耦合的模拟方法及典型项目应用问题处理。2.4根据模拟结果,

weixin_55561616的博客 964

YOLOv11改进 | 添加注意力篇 | 一文带你改进GAM、CBAM、CA、ECA等通道注意力机制和多头注意力机制

这篇文章给大家带来的改进机制是一个汇总篇,包含一些简单的注意力机制,本来一直不想发这些内容的(网上教程太多了,发出来增加文章数量也没什么意义),但是群内的读者很多都问我这些机制所以单独出一期视频来汇总一些比较简单的注意力机制添加的方法和使用教程,本文的内容不会过度的去解释原理,更多的是从从代码的使用上和实用的角度出发去写这篇教程。欢迎大家订阅我的专栏一起学习YOLO!YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备目录一、本文介绍二、GAM2.1 GAM的介绍2.2 GAM的核心代码。

Snu77的博客 5151

后端开发入门三年,聊聊我眼中的技术栈演进

三年前我入职第一家公司时,后端项目还是清一色的SSH框架。Struts的Action、Spring的XML配置、Hibernate的映射文件,每一层都像手工搭建的简陋木屋。我连Linux命令都记不全,每次部署都要照着文档敲十几条步骤,生怕漏了哪一步。那时候的“高并发”不过是面试题里的概念,真实环境的压力测试从没跑过,倒是经常在深夜被电话叫醒,只是为了重启一个挂掉的Tomcat。那段日子虽然狼狈,却让我理解了传统后端的基本骨架。。SSH所服务的业务,模型简单,流量有限,单体架构足够支撑。

searchboy2025的博客 12

leetcode134 加油站

题目如下 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。 说明: 如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输...

ayang818 's blog 232

一个客户端开发眼中的spring

周六的时候在b站搞了一波模拟面试,三个大学生,属实心态有点崩 因为我看他们都是后端开发,而我是android开发,对Spring不太熟悉,怕出丑,于是周六一天都在恶补spring知识 结果第一个问题 IOC都没人答出来……后面我都不知道怎么问了 最后的视频发出来,又因为同学说隐私啥的不想发出来,没办法,我只能给删了,因为视频很大,如果重新打码,剪辑再导出上传,至少又要两小时起步,我实在是不想在这种事情上浪费时间了 以后模拟面试还是需要设置一下门槛吧 好,今天我们来说说我学习spring的收获,以下所有知识点

小松与蘑菇 1673

python实现下载和离线安装包环境

导出当前电脑python安装的所有包列表requirement.txt。

m0_60352504的博客 1675

[Dify实战] 招投标标书智能生成:模板套用 + 风险校验

摘要:本文提出基于Dify构建AI标书生成工作流,解决传统标书撰写中内容重复(80%复用率)、人工修改效率低、风险检查易出错等痛点。方案包含三大核心模块:1)智能生成(基于模板自动填充项目信息);2)风险校验(AI自动检查废标风险点);3)多角色协作。通过拆分标书结构、设置详细Prompt、建立风险检查清单,实现从"人工撰写"到"参数化自动生成+AI审核"的转型,最终输出标准格式文档并支持企业系统集成。典型应用场景下,系统能自动生成技术方案并识别关键风险(如支付安全合

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 826

程序员眼中后端技术点总结

本次分享面向广大的后端技术开发人员,以 Java 编程语言为切入点,按照不同的技术切面逐步分享,煌煌之言,不辞辛苦,希望能带给你点滴的收获. 本场 Chat 您将学到如下内容: Java 初识 设计原则及模式 Spring Boot 应用总结:日志集成,配置,Mybatis 集成,部署等 Spring Cloud 介绍 幂等、重试、限流、分流、锁 方案简要说明 线程及线程池 分库分表简要说明 ...

GitChat 531

快速傅里叶变换(FFT)的汇编实现在DSP开发中

在数字信号处理(Digital Signal Processing,DSP)开发中,使用汇编语言实现FFT可以进一步提高计算性能和优化系统资源的使用。FFT是一种分治算法,它通过将一个长度为N的离散时间域序列分解为多个长度为N/2的子序列,然后递归地进行计算。开发者可以根据实际需求,结合具体的硬件平台和编译器工具链,对FFT的汇编实现进行优化和定制化。需要注意的是,上述示例代码中只给出了FFT的基本框架,具体的合并操作及其他细节需要根据实际需求进行实现。上述示例代码演示了一个简单的FFT汇编实现。

QoTypescript的博客 683

从事Java后端开发,要学习哪些知识和技能?

性能优化可以说是很多一线大厂对其公司内高级开发的基本要求(其中以Java岗最为显著)。其原因有两个:一是提高系统的性能,二是为公司节省资源。两者都能做到,那你就不可谓不是普通程序员眼中的“调优大神了”。

Javatutouhouduan的博客 419

11、硬件工程师笔试面试——IGBT(2025版本)

IGBT的应用展望与创新趋势表明,随着电子技术的不断发展,IGBT在各个领域都有广泛的应用,如高压电力系统、交通工具、电锅炉、太阳能和风能发电系统等。FS型IGBT(场终止型绝缘栅双极晶体管)在电力传输领域的应用中,通过其独特的设计和特性,有助于确保系统的稳定性和安全性。每种器件都有其独特的优势,能够满足电力传输系统中不同的技术要求。FS型IGBT通常具有正温度系数,这意味着随着温度的升高,导通压降的主要影响因素是载流子迁移率的降低以及集电极和发射极的接触电阻的增加,有助于在高温下维持稳定的性能。

XU157303764的博客 2669

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

金三银四结束后,我成为了同事眼中的offer收割机器,偷偷教你我的面试技巧!

前言 我自己的22届春招实习算是告一段落,给自己做个总结,也给大家分享一下金三银四的一些心得。 一、首先介绍一下自己的情况: 上海某211渣硕 2022年毕业 电子信息专硕(两年制),今年研一 java后端开发(半路出家) 暑期大厂实习offer: 阿里巴巴—蚂蚁金服—支付宝技术部—java 腾讯—PCG—看点搜索中心—c++ 字节跳动—电商业务->转到西瓜视频—go 美团—美团平台—服务体验部—java 携程—国际化旅游业务—java … 最终选择了去阿里实习,有以下几个原因: 超级大厂,java体

weixin_49494194的博客 540

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

大厂面试实录:谢飞机 vs 硬核面试官——从缓存击穿到分布式事务的“过山车”

面试不仅是知识的问答,更是思维方式的碰撞。知其然更要知其所以然:不仅会用@Cacheable,更要懂缓存更新的时序问题。场景驱动技术选型:没有银弹,只有最适合当前业务规模(QPS、数据量)的方案。底层原理是护城河:在高级岗位面试中,框架的使用只是门槛,对 JVM、并发编程、分布式协议的深入理解才是决胜关键。希望这篇文章能帮助大家在未来的面试中,避开“谢飞机”式的陷阱,从容应对每一个技术挑战。祝各位 Offer 拿到手软!

qq_38240038的博客 470

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

普通Java程序员如何成为性能调优大神?

性能优化可以说是很多一线大厂对其公司内高级开发的基本要求(其中以Java岗最为显著)。其原因有两个:一是提高系统的性能,二是为公司节省资源。两者都能做到,那你就不可谓不是普通程序员眼中的“调优大神了”。

wdj_yyds的博客 404

java web 架构师_资深架构师眼中的Java Web系统十年架构演化之路!

一 、Java Web架构演变在java架构模式中,我们可以将MVC架构模式抽象为如下结构:View层。View层即UI层,可采用的技术如JSP,Structs,SpringMVC等Controller层。Controller表示控制器层,可采用的技术,如Servlet/Filter,Spring等Service层。Service层表示核心服务层,向架构上层提供服务DAO层。DAO层表示数据访问层...

weixin_36051281的博客 156

成大事数据库技术面试题系列16:MySQL主从复制与高可用面试题 | 第1-5题 | 从基础原理到实战部署,成为数据库架构专家

MySQL主从复制与高可用面试题摘要 核心知识点 主从复制原理:基于binlog→relay log→SQL执行流程,包含IO线程和SQL线程的工作机制 三种复制模式: 异步复制(高性能但可能丢数据) 半同步复制(主库等待至少一个从库确认) 组复制(MGR,多主架构,强一致性) 主从延迟问题:从库性能差、大事务、网络延迟等原因及解决方案 binlog格式:STATEMENT、ROW、MIXED三种格式的优缺点比较 实战部署流程:从主库配置到从库启动复制的完整步骤 面试价值 这些题目覆盖了MySQL高可用架构

成大事的博客 939

【Java视角】OpenClaw爆火背后:是“低代码”的终结,还是后端开发的“新副驾驶”?

摘要: OpenClaw作为阿里云生态下的AI智能体平台,通过自然语言指令替代传统脚本运维和硬编码业务流程,对Java开发产生深远影响。它将任务抽象为可调用的工具,减少重复编码,推动开发重心转向高可用的原子能力接口设计。虽然OpenClaw能提升运维自动化和业务编排效率,但Java程序员的核心价值仍在于复杂系统架构、安全控制与性能优化。建议开发者标准化接口、结构化日志并学习Prompt Engineering,以拥抱这一人机协作的新模式。OpenClaw不会取代Java开发者,但会加速淘汰缺乏自动化思维的从

qq_64198216的博客 739

零基础转行计算机:Python与SQL核心技能学习路径与就业指南

在数字化转型浪潮中,掌握数据处理与分析能力已成为现代职场的重要竞争力。从技术原理上看,编程语言和数据库查询语言是实现数据价值挖掘的基础工具。Python以其简洁语法和丰富的生态库,降低了编程入门门槛,广泛应用于数据分析、Web开发和自动化脚本等领域。SQL作为与数据库交互的标准语言,通过声明式语法实现对数据的增删改查,是数据提取与整合的核心技术。这两项技术的结合,为业务决策提供了高效的数据支持,在数据分析、后端开发、测试自动化及数据仓库构建等场景中发挥着关键作用。本文聚焦Python编程与SQL查询这两项高

weixin_34080951的博客 349

Java进阶需要掌握哪些技术?

性能优化可以说是很多一线大厂对其公司内高级开发的基本要求(其中以Java岗最为显著)。其原因有两个:一是提高系统的性能,二是为公司节省资源。两者都能做到,那你就不可谓不是普通程序员眼中的“调优大神了”。

wdj_yyds的博客 527

MySQL 核心基础 | Pandaer杂货铺

​呼~~,我们从MySQL最基础的架构聊起,最后聊到了MySQL最核心的事务实现。其中可能会有一些不对的地方,如果你发现了,你可以在评论区指出,我们共同讨论!最后,我们江湖再见!

Pandaer杂货铺 1051
上一篇: (西安电子科技大学,汤小丹等)计算机操作系统——第二章、进程的描述与控制
下一篇: 后端开发眼中的数据库——数据库索引
Suzuki Mirai
博客等级 码龄9年 17粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值