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

java面试准备17

事务的四大特性

(1)原子性:事务执行的最小单位,不可被分割,事务的原子性保证事务中的一连串动作要么都执行,要么都不执行。
(2)一致性:执行事务前后的数据保持一致,多个事务对同一个数据的读取结果是一样的。
(3)隔离性:并发访问数据库时,一个事务不会被其他事务所干扰,各个并发事务之间是独立的。
(4)持久性:一个事务提交之后,它对数据库的改变是持久的,即使数据库发生故障也不会有任何影响。

什么是脏读、幻读、不可重复读

脏读:某个事务已经更新了一份数据,另一个事务在此期间读取了这个数据,由于某些原因,前一个事务执行了回滚操作,则此时后一个事务读取的数据是不正确的。
不可重复读:同一个事务两次查询之间数据不一致,这可能是两次查询之中插入了一个事务更新了原有的数据。
幻读:同一个事务两次查询到的数据数目不一致,两次查询间有另一个事务插入或者删除了几条数据。

数据库的四种隔离级别

读取未提交:最低的隔离级别,允许读取尚未提交的数据变更,会导致脏读(读取到回滚数据)、不可重复读(两次读取间有更新)、幻读(两次读取间有新增或者删除)。
读取已提交:允许读取并发事务已经提交的数据,可以防止脏读。
可重复读:对同一字段的多次读取结果都是一致的,除非数据是被本身事务所修改,可以阻止脏读和不可重复读。
可串行化:最高的隔离级别,所有事务依次执行,这样事务之间完全不会被干扰。

隔离级别和锁的关系

(1)在读未提交的级别下,读取数据不需要加共享锁。
(2)在读已提交的级别下,读取数据需要增加共享锁,但会在语句执行完后释放共享锁。
(3)在重复读的隔离级别下,读操作需要加共享锁,但在事务提交不会释放共享锁,也就是必须等待事务执行完毕后才可以释放共享锁。
(4)在序列化的级别下,该级别锁住整个表的数据,并且一直持有锁,知道事务完成。

从锁的类别上区分,MySql都有哪些锁

共享锁:又叫做读锁,当用户需要进行数据的读取时,对数据加上共享锁,共享锁可以同时加上多个。
排他锁:又叫做写锁,当用户需要进行数据的写入时,对数据加上排他锁,排他锁只可以加一个,它和其他的排他锁、共享锁都互斥。

SQL约束有哪几种

Not Null:用于控制字段的内容一定不能为空(NULL)
UNIQUE:控制字段不能重复,一个表允许有多个UNIQUE约束
PRIMARY KEY:用于控制字段不能重复,不能为空,且一个表中只能有一个
FOREIGN KEY:用于预防破坏表之间的连接的动作,也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值。

varchar和char的区别

char:char表示长字符串,长度是固定的,如果插入数据的长度小于char的固定长度时,则会用空格填充,因为长度固定,所以char的存取速度比varchar要快很多,甚至可以快50%,但是因为其长度固定,所以会占据很多多余的空间,是空间换时间的做法。
varchar:表示可变长字符串,长度是可变的;插入的数据多长,就按照多长来存储,存取方面比char慢,因为长度不确定,但因此不占用多余空间,是时间换空间的做法。

FLOAT和DOUBLE的区别是什么?

Float类型数据最多存储8位十进制数,并且在内存中占有4字节。
Double类型数据最多存储18位十进制数,并且在内存中占8字节。

drop、delete和truncate

delete:可回滚,删除后表结构还在,可以删除表的全部或者一部分数据,删除速度慢,需要逐行删除。
trancate:不可回滚,表结构还在,删除表中的所有数据,删除速度快
drop:不可回滚,从数据库中删除表,所有的数据行,索引和权限也会被删除,删除速度快。

UNION与UNIONALL的区别

如果使用UNION ALL,不会合并重复的记录行
UNION效率高于UNION ALL

SQL的生命周期

(1)应用服务器与数据库服务器建立一个连接
(2)数据库进程拿到请求sql
(3)解析并生成执行计划,执行
(4)读取数据到内存中并且进行逻辑处理
(5)经过步骤一的连接,发送结果到客户端
(6)关掉连接,释放资源

优化查询过程中的数据访问

访问数据太多导致查询性能下降,确定应用程序是否在检索大量超过需要的数据,可能是太多行或者列,确认MySQL服务器是否在分析大量不必要的数据行,避免犯如下SQL语句错误:
(1)查询不需要的数据,解决办法:使用limit解决
(2)多表关联返回全部列,解决办法:指定列名
(3)总是返回全部列,解决办法:避免使用select * 重复查询相同的数据。解决办法:可以缓存数据,下次直接读取缓存。
(4)是否存在扫描额外的记录,解决办法:使用explain进行分析,如果发现查询需要扫描大量的数据,但只返回少数的行,可以通过如下技巧去优化:
使用索引覆盖扫描,把所有的列都放到索引中,这样存储引擎不需要回表获取对应行就可以返回结果。

某个表有近千万数据,CRUD比较慢,如何优化?

(1)限定数据的范围:务必禁止不带任何限制数据范围条件的查询语句。
比如在查用户订单历史的时候,可以控制在一个月的范围内。
(2)读/写分离:经典的数据库拆分方案,主库负责写,从库负责读。
(3)缓存:使用MySQL的缓存,另外对重量级、更新少的数据可以考虑使用应用级别的缓存。

相关文章:

java面试准备17

事务的四大特性 (1)原子性:事务执行的最小单位,不可被分割,事务的原子性保证事务中的一连串动作要么都执行,要么都不执行。 (2)一致性:执行事务前后的数据保持一致&…...

ffmpeg的滤镜

FFmpeg 是一款开源的跨平台音视频处理工具,它提供了众多功能强大的滤镜用于视频/音频的加工处理。其中,滤镜(Filter)是 FFmpeg 中一个十分重要且常用的组件,它们可以实现对视频和音频的各种操作和变化,如转码、编解码、剪裁、裁剪…...

springboot项目感受03

继续上文 01.数据的部分已经完成了,此时需要考虑到前端与用户交互的部分,这里就需要网页html,服务器响应servlet。 网页的部分,html文件放在resource目录下的template文件中,servlet变成了controller包,其…...

notion插件:为你的工作流带来新生

在本文中,我们将介绍Notion的几款有助于提高生产力的插件。这些插件将加强Notion的功能,并为你的工作流程带来更多的便利。 我们特地为你准备了这本漫游指南:收录各种工具、信息和资源,携你共同探索浩瀚美丽的互联网海洋。 snackt…...

【python】Jupyter的使用(python代码编辑器)

文章目录一、Jupyter的介绍1、Jupyter是什么?2、Jupyter有什么独特之处?二、Jupyter的安装1、首先要下载python2、用pip命令下载Jupyter三、Jupyter的使用1、运行Jupyter2、简要介绍Jupyter的使用方法3、快捷键的使用四、总结一、Jupyter的介绍 1、Jupy…...

面试官:你做过什么有亮点的项目吗?

前言 面试中除了问常见的算法网络基础,和一些八股文手写体之外,经常出现的一个问题就是,你做过什么项目吗? 面试官其实是想看看你做过什么有亮点的项目, 其实大家日常做的项目都差不多,增删改查,登录注册&…...

【华为OD机试真题】猜字谜(javapython)

猜字谜 时间限制:1s空间限制:256MB 限定浯言:不限 题目描述: 小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如nesw,玩 家需要猜出谜底库中正确的单词。猜中的要求如下: 对于某个谜面和谜底单词,满足下面任一条件都表示猜中: 变换顺序以后一样的,…...

制作真人手办有哪些不便?怎么解决?

相信很多朋友都喜欢拍摄写真,比如孩子生日的时候,结婚纪念的时候,写真照片能留存住很多美好的记忆。 不过随着科技的发展,大家已经不能满足只靠照片来记录生活了,越来越多的人开始盯上了手办这件物品。将真人的照片和…...

网络安全行业现在好混吗,工资水平怎么样?

前段时间看到有人私信:网络安全行业现在好混吗,工资水平怎么样?今天在这里做个回答,不知你所说的“好混吗”指的是什么? 薪资高,待遇好?不加班,活儿少?不受气&#xff0…...

【SpringBoot】面试组合技-天羽屠龙舞,SpringBootApplication注解的作用是什么?SpringBoot怎么实现自动装配的?

SpringBoot源码下载地址:https://github.com/spring-projects/spring-boot/tags 文章目录🍟下载源码🍗环境准备🍖注解解析🍝SpringBootConfiguration注解🍛EnableAutoConfiguration注解🍤AutoC…...

2023-4-10-用Pthreads计算积分

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥💟💟喜欢的朋友可以关注一下&#xff0…...

什么是js?js的基本使用

JavaScript(简称“ js”) 是一种具有函数优先的轻量级,解释型或即时编译型的编译语言虽然它是作为开发WEB页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言&a…...

自然数的拆分问题 字典序

目录 自然数的拆分问题 字典序 程序设计 程序分析 自然数的拆分问题 字典序 对于大于1的自然数N,可以拆分成若干个大于等于1的自然数之和。 Input 一个大于1的自然数N Output 所有的拆分情况.按字典序排列。 Sample Input...

软件测试——概念篇

目录 一、软件的生命周期 二、瀑布模型(Waterfall Model) 优点: 缺点: 三、螺旋模型(Spiral Model) ​编辑优点: 缺点: 四、增量、迭代 区别: 五、敏捷 scrum…...

Qsort函数的应用与讲解

解释: qsort排序函数,即讲一段数组,字符串等进行有序的排列 分析: void qsort (void* base,//要排序的数组的首元素(就是数组名)size_t num, //要排序的数组元素的个数size_t size,//每个元素的字节大小&…...

蓝桥杯嵌入式第九届客观题解析

文章目录 前言一、题目1二、题目2三、题目3四、题目4五、题目5六、题目6七、题目7八、题目8九、题目910、题目10总结前言 本篇文章为大家带来第九届客观题的讲解。 一、题目1 STM32F103RBT6 微控制器是一款基于 ARM Cortex-M3 内核的单片机,它具有多个外设和总线,包括 APB1…...

多元函数的基本概念——“高等数学”

各位CSDN的uu们你们好呀,今天,小雅兰的内容是多元函数的基本概念,下面,让我们一起进入多元函数的世界吧 平面点集 多元函数的概念 多元函数的极限 多元函数的连续性 有界闭区域上多元连续函数的性质 平面点集 第一个是坐标平…...

LabVIEW-数值控件和布尔控件

简介 LabVIEW 以其强大、开放、图形化的虚拟仪器软件开发环境使得无论是否有过编程经验的工程师或科学家使用它时都可以快速、高效地与测量和控制硬件通信,并进行复杂的数据分析及处理。LabVIEW集成了满足GPIB、PXI、VXI、RS232、RS485、USB、DAQ等多种形式的设备互…...

R730重组阵列raid5

如何进入阵列界面,可以参考这篇文章:R730服务器热插拔换磁盘(raid阵列) 首先来到阵列界面:来到红框Disk Group处,然后按F2 然后移到箭头处,回车(删掉磁盘组) 然后发现…...

Verilog学习笔记3——数据位宽、阻塞/非阻塞赋值、二进制码、独热码、格雷码比较、编写原则、三态门、

文章目录前言一、数据位宽1、有符号定点数2、Nbit和Mbit相加或相乘二、阻塞赋值和非阻塞赋值三、timescale四、三态门的设计五、verilog模块编程原则六、二进制码、独热码、格雷码比较1、独热码2、格雷码3、二进制码前言 2023.4.5 清明节 一、数据位宽 N位有符号数&#xff1…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

ES6从入门到精通:前言

ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​,覆盖应用全生命周期测试需求,主要提供五大核心能力: ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

docker 部署发现spring.profiles.active 问题

报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...