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

【位运算】消失的两个数字(hard)

消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层&#xf…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

OpenLayers 分屏对比(地图联动)

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...