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,玩 家需要猜出谜底库中正确的单词。猜中的要求如下: 对于某个谜面和谜底单词,满足下面任一条件都表示猜中: 变换顺序以后一样的,…...
制作真人手办有哪些不便?怎么解决?
相信很多朋友都喜欢拍摄写真,比如孩子生日的时候,结婚纪念的时候,写真照片能留存住很多美好的记忆。 不过随着科技的发展,大家已经不能满足只靠照片来记录生活了,越来越多的人开始盯上了手办这件物品。将真人的照片和…...
网络安全行业现在好混吗,工资水平怎么样?
前段时间看到有人私信:网络安全行业现在好混吗,工资水平怎么样?今天在这里做个回答,不知你所说的“好混吗”指的是什么? 薪资高,待遇好?不加班,活儿少?不受气࿰…...
【SpringBoot】面试组合技-天羽屠龙舞,SpringBootApplication注解的作用是什么?SpringBoot怎么实现自动装配的?
SpringBoot源码下载地址:https://github.com/spring-projects/spring-boot/tags 文章目录🍟下载源码🍗环境准备🍖注解解析🍝SpringBootConfiguration注解🍛EnableAutoConfiguration注解🍤AutoC…...
2023-4-10-用Pthreads计算积分
🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥💟💟喜欢的朋友可以关注一下࿰…...
什么是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位有符号数࿱…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
