Java常见面试技术点整理讲解——数据库相关(整理中,未完成)

server/2025/3/14 0:31:16/

主要整理数据库方面的技术及原理。涉及数据库的事务,范式,索引,结构,视图等问题。

以及比对各个数据库版本之间的差异,存储引擎的差异,最新数据库的使用等。

 一:事务

事务是指由一系列数据库操作组成的一个完整的逻辑过程,不可拆分。其中,ACID是DBMS在写入或更新资料的过程中,为保证事务是正确可靠的,必须具备的特性。

A:原子性  A‌tomicity

一个事务中的所有操作,要么全成功,要么全失败,如果错误需进行回滚,即整个事务是不可分割的单元。

C:一致性  Consistency

事务开始之前和结束以后,数据库的完整性没有被破坏,即写入资料必须完全符合预设和规则(如外键约束,字段类型等)

I:隔离性  Isolation

数据库允许多个并发事务同时对其进行读写和修改,隔离性可防止多个事务并发执行时,由于交叉执行而导致的数据不一致,事务隔离级别分为处理不同程度的数据问题。

D:持久性  Durability

事务一旦提交,其对数据库所做的更改必须永久保存。


1:并发事务问题

多个线程并发事务中,如果不设置隔离性,可能会出现如下三种常见问题。

脏读:指一个事务读取了另外一个事务未提交的数据,脏读被认为是数据库中的最重要问题,是不被任何数据库所允许的。

场景:使用转账场景描述,A向B转账,事务还没提交,B查到金额到账了,实际上后续A回滚了,导致B拿到错误信息,可能会造成严重后果。


不可重复读:指在一个事务里面读取多次某个数据,读出来的数据不一致。不可重复读在有些数据库被认为是没有问题的,所以它在某些数


http://www.ppmy.cn/server/174753.html

相关文章

The 18th Northeast Collegiate Programming Contest H

题目连接 最大值最小,对于套路化的题目来说一般先想二分?(不行试试DP?再试试网络流?),我们先试着二分答案 m i d mid mid,考虑如何检查, 题目说可以选择任一点为根,不好考虑我们不妨先选择1作为根节点 因为要让两个点的距离都尽可能的小,…

Qt C++ 实际开发中宏编译的运用

Qt C 实际开发中宏编译的运用 在Qt C开发中,宏编译(Preprocessor Macros)是一种强大的工具,用于在编译时根据条件生成不同的代码。宏编译可以用于跨平台开发、调试、功能开关等场景。以下将详细介绍宏编译在Qt C实际开发中的应用…

Linux进程信号二

1.软件条件产生信号 SIGPIPE是一种由软件条件产生的信号&#xff0c;在管道中出现过。 alarm函数 设置一个定时器&#xff0c;当时间到达时&#xff0c;会向进程发送SIGALRM信号。 #include <unistd.h> unsigned int alarm(unsigned int seconds); seconds参数&#x…

golang从入门到做牛马:第十八篇-Go语言递归函数:函数的“自我调用”

在Go语言中,递归是一种强大的编程技术,它允许函数调用自身。递归通常用于解决那些可以通过更小的子问题来解决的问题,例如计算阶乘、生成斐波那契数列等。递归函数在运行过程中会不断调用自身,直到满足某个条件为止。接下来,让我们一起深入了解Go语言中的递归函数。 什么是…

Unity大型游戏开发全流程指南

一、开发流程与核心步骤 1. 项目规划与设计阶段 需求分析 明确游戏类型&#xff08;MMORPG/开放世界/竞技等&#xff09;、核心玩法&#xff08;战斗/建造/社交&#xff09;、目标平台&#xff08;PC/移动/主机&#xff09;示例&#xff1a;MMORPG需规划角色成长树、副本Boss…

计算机视觉算法实战——茶园害虫识别(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​ 1. 引言 茶园害虫识别是农业领域中的一个重要研究方向&#xff0c;旨在通过计算机视觉技术自动识别茶园中的害虫种类&#xff0c;从…

2024年广州市智能网联汽车创新实践年度报告

政策法规方面&#xff0c;积极推进《广州市智能网联汽车创新发展条例》的制定和发布&#xff0c;不断完善法规标准体系&#xff0c;为产业创新发展营造良好政策环境&#xff1b;技术创新方面&#xff0c;企业加大研发投入&#xff0c;在自动驾驶算法、车联网安全等关键领域取得…

neo4j随笔-将csv文件导入知识图谱

目录 导入前的准备 导入csv文件 导入nodes1.1.csv并动态为节点添加标签 ​编辑导入relations1.1.csv并动态为关系添加标签 结果 导入前的准备 我有两个csv文件 nodes1.1.csv存放节点信息,用记事本打开&#xff0c;能正常显示&#xff0c;且编码为UTF-8&#xff0c;就可以…