当前位置: 首页 > 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…...

Vue-Todo-list 案例

一、前言 在前端开发中,Todo List(待办事项列表) 是一个非常经典的入门项目。它涵盖了组件化思想、数据绑定、事件处理、本地存储等核心知识点,非常适合用来练习 Vue 的基本用法。 本文将带你一步步实现一个功能完整的 Vue Todo…...

智慧零售管理中的客流统计与属性分析

智慧零售管理中的视觉分析技术应用 一、背景与需求 随着智慧零售的快速发展,传统零售门店面临管理效率低、安全风险高、客户体验差等问题。通过视觉分析技术,智慧零售管理系统可实现对门店内人员行为的实时监控与数据分析,从而提升运营效率…...

React Navive初识

文章目录 搭建开发环境安装 Node、homebrew、Watchman安装 Node安装 homebrew安装 watchman 安装 React Native 的命令行工具(react-native-cli)创建新项目编译并运行 React Native 应用在 ios 模拟器上运行 调试访问 App 内的开发菜单 搭建开发环境 在…...

利用qcustomplot绘制曲线图

本文详细介绍了qcustomplot绘制曲线图的流程,一段代码一段代码运行看效果。通过阅读本文,读者可以了解到每一项怎么用代码进行配置,进而实现自己想要的图表效果。(本文只针对曲线图) 1 最简单的图形(入门&…...

智能对联网页小程序的仓颉之旅

#传统楹联遇上AI智能体:我的Cangjie Magic开发纪实 引言:一场跨越千年的数字对话 "云对雨,雪对风,晚照对晴空"。昨天晚上星空璀璨,当我用仓颉语言写下第一个智能对联网页小程序的Agent DSL代码时&#xff0…...

基于Springboot的宠物领养系统

本系统是一个面向社会的宠物领养平台,旨在帮助流浪宠物找到新家庭,方便用户在线浏览、申请领养宠物,并支持管理员高效管理宠物、公告和用户信息。 技术栈: -后端: Java 8Spring BootSpring MVCMyBatis-PlusMySQL 8R…...

STM32实战: CAN总线数据记录仪设计方案

以下是基于STM32的CAN总线数据记录仪/转发器的设计与实现方案&#xff0c;结合了核心功能和进阶需求&#xff1a; 系统架构 graph TBA[CAN总线] -->|CAN_H/CAN_L| B(STM32 bxCAN)B --> C[数据处理核心]C --> D[SD卡存储<br>FATFS文件系统]C --> E[串口输出…...

ADI硬件笔试面试题型解析下

本专栏预计更新60期左右。当前第17期-ADI硬件. ADI其硬件工程师岗位的招聘流程通常包括笔试和多轮技术面试,考察领域涵盖模拟电路设计、数字电路、半导体器件和信号处理等。 本文通过分析平台上的信息,汇总了ADI硬件工程师的典型笔试和面试题型,并提供详细解析和备考建议,…...

永磁同步电机控制算法--模糊PI转速控制器

一、原理介绍 在常规的PID控制系统的基础上提出了一种模糊PID以及矢量变换方法相结合的控制系统&#xff0c;经过仿真分析对比证明&#xff1a; 模糊PID控制系统能够有效的提高永磁同步电机的转速响应速度&#xff0c;降低转矩脉动&#xff0c;增强了整体控制系统的抗干扰能力…...

Profinet 协议 IO-Link 主站网关(三格电子)

一、产品概述 1.1 产品用途 SG-PN-IOL-8A-001 网关是 Profinet 从转 IO-Link 主的网关设备 &#xff0c;可以将 IO-Link 从站设备接入 Profinet 系统&#xff0c;通过该网关可实现传感器及驱动器与控制 器之间的信息交互。网关有两个百兆网口和 8 个 IO-Link 端口&#xff0c;两…...