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

JAVA面试八股文一(mysql)

  1. B-Tree和B+Tree区别

共同点;一个节点可以有多个元素, 排好序的

不同点:B+Tree叶子节点之间有指针,非叶子节点之间的数据都冗余了一份在叶子节点

B+Tree是B-Tree 的升级

  1. mysql什么情况设置了索引,但无法使用

a.没符合最左原则

b.字段进行了隐式数据转化

c.走索引没有全表扫描效率高

  1. 索引的基本原理

把无序的数据变成有序的查询

a.把创建了索引的列的内容进行排序

b.把排序结果生成倒排表

c.在倒排表上拼上数据地址链

d.查询的时候先拿倒排表内容没在取数数据链,从而拿到具体数据

  1. 索引设计原则

a.适合索引的列出现在where中的列,或连表查询的指定列

b.基数较小的表,索引效果比较差,没必要建索引

c.辨识度不高的字段没必要

d.字节长度过大的字段没必要

  1. sql慢查询优化

a.分析sql语句是否加载了额外的数据

b.explain 分析执行计划,修改语句修改索引

d.数据量是否太大,如果太大 横向,纵向分表

  1. mysql如何分库分表,分库分表的方式和分片策略有哪些,分库分表后,sql语句执行流程

什么是分库分表:当表中的数据量过大,整个查询效率就会降低的非常明显。为了提升效率,就要将整个表的数据分散到多个数据库的多个表中

分库分表的策略:

垂直分片:

从业务和数据需求上,将不同的数据表分散到不同的数据库。能解决数据库文件过大的问题,但是从根本上解决不了数据大查询慢的问题。

水平分片:

将表的数据拆分放到不同的数据库和表中,可以解决数据量过大造成的查询效率过低的问题。

水平分片策略:

取余,取模:优点:数据平均,缺点:扩容非常麻烦

按照范围分片:比较好扩容,数据分布不均匀

按照时间分片:比较容易将热点数据区分出来

按枚举分片:例如按地区

多大数据量适合分库分表:数据超过500w或文件大于2G

分库分表常用组件:Mycat\ShardingSphere

分库分表后,SQL执行流程:

sql解析》查询优化》sql路由》sql改写》sql执行》结果归并

  1. 什么是脏读,幻读,不可重复读?要怎么处理

脏读:在事务进行过程中,读取到了其他事务未提交的数据。

不可重复读:在事务执行过程中,多次查询的数据不一致

幻读:在一个事务中,用同样的操作查询数据,得到的记录数不一致。

处理方式有很多种:加锁,事务隔离,mvcc

加锁:

  1. 脏读:在修改时加排它锁,直到事务提交才释放。读取时加共享锁,读完释放锁。

  1. 不可重复读:读书数据时,加共享锁,写数据时加排它锁。

  1. 幻读:加范围锁

  1. 事务的基本特性和隔离级别

基本特性:

  1. 原子性:指一个事务的操作要么全部成功,要么全部失败。

  1. 一致性:数据苦总是从一个一致性的状态转换到另一个一致性的状态。

  1. 隔离性:事务的修改在最终提交前,对其他事务是不可见的

  1. 持久性:一旦事务提交,所有的修改会永久保存到数据库中

隔离性的4个隔离级别:

  1. 读未提交 可能会读到其他事务未提交的数据,也叫脏读

  1. 读已提交 两次读取结果不一致,叫不可重复读

  1. 可重复读 mysql默认级别,就是每次读取结果一样,可能产生幻读

  1. 串行 一般不会使用,他会给每一行读取的数据加锁,会导致大量超时和锁竞争问题。

相关文章:

JAVA面试八股文一(mysql)

B-Tree和BTree区别共同点;一个节点可以有多个元素, 排好序的不同点:BTree叶子节点之间有指针,非叶子节点之间的数据都冗余了一份在叶子节点BTree是B-Tree 的升级mysql什么情况设置了索引,但无法使用a.没符合最左原则b.…...

动静态库概念及创建

注意在库中不能写main()函数。 复习gcc指令 预处理-E-> xx.i 编译 -S-> xx.s 汇编 -c-> xx.o 汇编得到的 xx.o称为目标可重定向二进制文件,此时的文件需要把第三方库链接进来才变成可执行程序。 gcc -o mymath main.c myadd.c mysub.c得到的mymath可以执…...

【H.264】码流解析 annexb vs avcc

H264码流解析及NALUAVCC和ANNEXB 前者是FLV容器、mp4 常用的。后者 是实时传输使用,所以是TS 一类的标准。VLC显示AVC1就是AVCC AVCC格式 也叫AVC1格式,MPEG-4格式,字节对齐,因此也叫Byte-Stream Format。用于mp4/flv/mkv, VideoToolbox。 – Annex-B格式 也叫MPEG-2 trans…...

【最优化方法】1-最优化方法介绍

文章目录1 最优化起源2 最优化发展3 运筹学在国外4 运筹学在国内5 什么是最优化?6 为什么要研究最优化问题?7 最优化问题8 最优化问题分类9 最优化研究内容理论算法应用1 最优化起源 中国古代优化思想–田忌赛马(公元前340年) 18世纪L.Euler&#xff0…...

数据结构 | 树 | 二叉树

🔥Go for it!🔥 📝个人主页:按键难防 📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 📖系列专栏:数据结构与算法 &#x1f52…...

笔记:使用 unbuild 搭建 JavaScript 构建系统笔记

使用 unbuild 搭建 JavaScript 构建系统jcLee95:https://blog.csdn.net/qq_28550263?spm1001.2101.3001.5343 邮箱 :291148484163.com 简介: 本文是笔者阅读分析 elementPlus 项目时记录的。该项目用到了一个完全没有文档和资料的工具 unbu…...

【SpringBoot3.0源码】启动流程源码解析 •下

文章目录初始化DefaultBootstrapContext开启Headless模式获取监听器并启动封装命令行参数准备环境打印Banner创建上下文容器预初始化上下文容器刷新Spring容器打印启动时间发布事件执行特定的run方法上一篇《【SpringBoot3.0源码】启动流程源码解析 • 上》,主要讲解…...

QT(56)-动态链接库-windows-导出变量-导出类

1.导出变量 1.1不使用_declspec(dllimport) _declspec(dllexport) 使用_declspec(dllimport) _declspec(dllexport) 1.2win32 mydllwin32 myexe 1.3win32 mydllqt myexe 2.导出类 使用_declspec(dllimport) _declspec(dllexport) 2.1不用关键…...

TCP传输文件

传输文件和传输信息的区别: 传输信息,只是一条数据,传输文件是多条数据传输信息传输过去一般都会显示,传输文件一般不会显示,一般只是存放在文件中传输文件需要传输,文件大小和文件名称(不然不知…...

vue3:加载本地图片等静态资源

背景 在我们用 vue2 webpack 的时候&#xff0c;加载图片资源是这样用的&#xff1a; <img :src"require(/assets/test.png)" />这样打包后就会触发 file-loader 打包图片资源&#xff0c;在 dist 文件夹中就可以看到这个图片&#xff08;如果图片较小会打包…...

工作记录------数据库group_concat函数长度问题

工作记录------group_concat函数长度问题 背景&#xff1a;页面在数据展示时&#xff0c;报错&#xff0c;错误显示&#xff1a;String index out of range: -1 异常信息 java.lang.StringIndexOutOfBoundsException: String index out of range: -1at java.lang.String.sub…...

Python基础语法

1 编程环境 1.1 编译环境 pycharmpython/anaconda 1.2 环境设置 File -> settings -> Project interpreter -> 1.3 Hello world 2 条件判断 2.1 例题 【题1】输入一个年份&#xff0c;判断是否是闰年 ①能被4整除&#xff0c;但不能被100整除; ②能被400整…...

windows环境下安装Nginx及常用操作命令

windows环境下安装Nginx及常用操作命令nginx基本概述基本用途nginx安装nginx基本概述 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器。基本用途 nginx是一个轻量级高并发服务器&#xff0c;而tomcat并不是。nginx一般被用来做反向代理&#xff0c;将请求转发到应用…...

python excel数据处理?

前段时间做了个小项目&#xff0c;帮个海洋系的教授做了个数据处理的软件。基本的功能很简单&#xff0c;就是对Excel里面的一些数据进行过滤&#xff0c;统计&#xff0c;对多个表的内容进行合并等。之前没有处理Excel数据的经验&#xff0c;甚至于自己都很少用到Excel。记得《…...

Hudi-集成Flink

文章目录集成Flink环境准备sql-client方式启动sql-client插入数据查询数据更新数据流式插入code 方式环境准备代码类型映射核心参数设置去重参数并发参数压缩参数文件大小Hadoop参数内存优化读取方式流读&#xff08;Streaming Query&#xff09;增量读取&#xff08;Increment…...

重新认识 React Hooks useContext

通常来说,React 数据的传递方式都是一层一层把资料 props 传到子层的 就算第二层(Function Component)、第三层(Button Group Compontn) 根本没有用到这个资料,但是为了传到最底层(button) ,每一层还是必须要传props // App.js const App = () => {const [dark, setDark…...

数据库(2)--加深对统计查询的理解,熟练使用聚合函数

一、内容要求 利用sql建立学生信息数据库&#xff0c;并定义以下基本表&#xff1a; 学生&#xff08;学号&#xff0c;年龄&#xff0c;性别&#xff0c;系号&#xff09; 课程&#xff08;课号&#xff0c;课名&#xff0c;学分&#xff0c;学时&#xff09; 选课&#xff0…...

stm32f407探索者开发板(十五)——NVIC中断优先级管理

文章目录零、前言一、NVIC中断优先级分组1.1 中断的管理方法1.2 抢占优先级&相应优先级的区别1.3 举例1.4 特别说明1.5 中断优先级分组函数二、NVIC中断优先级设置2.1 中断设置相关寄存器2.2 中断设置优先级2.2.1 中断优先级控制的寄存器组 IP[240]2.2.2 中断使能寄存器组 …...

【Azure 架构师学习笔记】-Azure Logic Apps(6)- Logic Apps调用ADF

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Logic Apps】系列。 接上文【Azure 架构师学习笔记】-Azure Logic Apps&#xff08;5&#xff09;- 标准和使用量类型的区别 前言 Logic Apps 和 ADF 的搭配使用是常见的组合&#xff0c;它们可以互相弥补各自的不足和…...

python随机获取列表中某一元素

1、利用Python中的random模块中的choice方法 random.choice()可以从任何序列&#xff0c;比如list列表中&#xff0c;选取一个随机的元素返回&#xff0c;可以用于字符串、列表、元组等。 import random arr[1,2,3,4,5,6] print(random.choice(arr))2、利用Python中的random模…...

Nacos微服务笔记

Nacos安装Nacos 的 Github&#xff08;Tags alibaba/nacos GitHub&#xff09;下载我们所需的 Nacos 版本&#xff0c;可以选择 windows 或者 Linux。 进入官网&#xff0c;选择合适版本&#xff0c;tar.gz为linux版本&#xff0c;zip为windows版本。下载并解压 nacos-server…...

MAC文件误删怎么办?mac数据恢复,亲测很好用的方法

电脑文件误删&#xff0c;应该很多人都经历过。之前分享了很多关于Windows电脑文件误删如何恢复的方法&#xff0c;那么MAC电脑文件误删该怎么办&#xff1f;有什么好方法可以使得mac数据恢复回来吗&#xff1f;下面就给大家分享一些亲测好用的方法&#xff01; 一、MAC电脑的文…...

机械革命z2黑苹果改造计划第二番-MacOS实用软件渗透工具

机械革命z2黑苹果改造计划第二番-实用软件 Mac实用工具 这是旧电脑改造计划的第二篇&#xff0c;就是安装一些常用软件和一些渗透测试工具&#xff0c;武装灵魂成为真正的生产力工具 首先推荐一个网站&#xff0c;www.mactools.app&#xff0c;这个软件里边有大多数常用的软…...

【LeetCode】每日一题(4)

目录 题目&#xff1a;1124. 表现良好的最长时间段 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 题目&#xff1a;1124. 表现良好的最长时间…...

Linux内核移植:内核的启动过程分析、启动配置与rootfs必要文件

Linux内核移植&#xff1a;内核的启动过程、启动配置与rootfs必要文件一、启动过程二、启动配置&#xff08;一&#xff09;SysV初始化&#xff08;二&#xff09;systemd初始化三、rootfs中的启动配置文件1、inittab2、/etc/init.d/rcS 脚本3、fstab4、profile 文件5、其他文件…...

【代码随想录训练营】【Day14】第六章|二叉树|理论基础|递归遍历|迭代遍历|统一迭代

理论基础 二叉树的定义形式有&#xff1a;节点指针和数组 在数组中&#xff0c;父节点的下标为i&#xff0c;那么其左孩子的下标即i*21&#xff0c;右孩子的下标即为i*22 二叉树的常见遍历形式有&#xff1a;前序遍历、后序遍历、中序遍历和层序遍历 前序遍历&#xff1a;二…...

AXI-Stream 学习笔记

参考 https://wuzhikai.blog.csdn.net/article/details/121326701 https://zhuanlan.zhihu.com/p/152283168 AXI4 介绍 AXI4 是ARM公司提出的一种片内总线&#xff0c;描述了主从设备之间的数据传输方式。主要有AXI4_LITE、AXI4_FULL、AXI4_STREAM三种。 AXI4_LITE&#xff1…...

【Linux】程序进程地址空间

文章目录程序地址空间进程地址空间程序地址空间 在Linux下,这种地址叫做 虚拟地址, 我们在用C/C语言所看到的地址,全部都是虚拟地址&#xff01;物理地址,用户一概看不到,由OS统一管理 问:C/C程序地址空间是内存吗? -> 根本就不是内存&#xff01; 是进程虚拟地址空间 堆栈…...

电压放大器在液滴微流控芯片的功能研究中的应用

实验名称&#xff1a;电压放大器在液滴微流控芯片的功能研究中的应用研究方向&#xff1a;微流控生物芯片测试目的&#xff1a;液滴微流控技术能够在微通道内实现液滴生成&#xff0c;精准控制生成液滴的尺寸以及生成频率。结合芯片结构设计和外部控制条件&#xff0c;可以对液…...

Linux操作系统学习(进程地址空间)

文章目录进程地址空间奇怪的现象什么是进程地址空间&#xff1f;&#xff1f;&#xff1f;虚拟地址是如何与物理内存联系的&#xff1f;页表是什么呢&#xff1f;为什么要有页表和地址空间&#xff0c;让进程直接访问内存不行吗&#xff1f;现象解释进程地址空间 在我们学习其…...

最新网站域名/互联网项目推广

2019独角兽企业重金招聘Python工程师标准>>> jquery中的ajax方法参数&#xff0c;常用参数如下&#xff1a; $.ajax({type: "get",url: http://xxx.xxx.com/xxx/xxx/xxx/personId,dataType: "json",data:{id:personId},success: function(data)…...

建企业网站怎么收费/德国搜索引擎

POJ-1182 食物链&#xff08;NYOJ-207&#xff09;食物链 时间限制&#xff1a;1000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;5描述动物王国中有三类动物A,B,C&#xff0c;这三类动物的食物链构成了有趣的环形。A吃B&#xff0c; B吃C&#xff0c;C吃A。 现有N个动…...

ai怎么做网站用海报/培训如何优化网站

在Java中实现一个服务器可以使用ServerSocket类。它允许在特定端口上监听客户端的连接请求。 首先&#xff0c;需要创建一个ServerSocket对象并绑定到特定端口上。ServerSocket serverSocket new ServerSocket(port);...

专业优化网站排名/2022年最火的电商平台

原文来源&#xff1a;Salesforce Researc 作者&#xff1a;JiataoGu、 James Bradbury 「雷克世界」编译&#xff1a;嗯~阿童木呀、多啦A亮 Salesforce研究院去年了成立研究院&#xff0c;之后又发布其人工智能服务Einstein AI。该研究院在自然语言处理&#xff0c;尤其是翻译方…...

小说网站有源码了该怎么做/做外贸有哪些网站平台

无论你身在何处&#xff0c;无论你学习什么编程语言&#xff0c;你最后都与数据库打交道。本来世界就相当于一个超级数据库。 在学习java语言的时候&#xff0c;也会涉足由于这个领域的&#xff0c;我在学习java的过程中用的是开源版的mysql. 作为一名 准程序员&#xff0c; 我…...

营销网站建设企划案例/无锡seo优化公司

javascript中不用声明类型&#xff0c;而是在运行的时候由编译器自己决定&#xff0c;也许脚本语言都这样向python&#xff0c;如果我没有记错的话&#xff0c;并称之为类型推断。你说这个能接受也就行了&#xff0c;居然对象的属性可以动态添加&#xff0c;在Java中&#xff0…...