Java后端面试题——Mysql篇

news2025/2/25 15:34:09

在Mysql中,如何定位慢查询呢?

表象:页面加载过慢、接口压测响应时间过长(超过1s)

原因:聚合查询 多表查询 表数据量过大查询 深度分页查询

方案:MySQL自带慢日志

需要在MySQL的配置文件(/etc/my.cnf)中配置如下信息:

# 开启MySQL慢日志查询开关

slow_query_log=1

# 设置慢日志的时间为2秒,SQL语句执行时间超过2秒,就会视为慢查询,记录慢查询日志 long_query_time=2

配置完毕之后,重新启动MySQL服务器进行测试,查看慢日志文件中记录的信息 /var/lib/mysql/localhost-slow.log 

定位好之后,如何分析慢查询呢?

可以采用EXPLAIN 或者 DESC命令获取 MySQL 如何执行 SELECT 语句的信息

 

 

MYSQL支持的存储引擎有哪些, 有什么区别 ? 

 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。

InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后,InnoDB是默认的 MySQL 存储引擎。

索引的底层数据结构了解过嘛 ?  

MySQL的InnoDB引擎采用的B+树的数据结构来存储索引

阶数更多,路径更短

磁盘读写代价B+树更低,非叶子节点只存储指针,叶子阶段存储数据

B+树便于扫库和区间查询,叶子节点是一个双向链表

知道什么叫覆盖索引嘛 ?

覆盖索引是指查询使用了索引,并且需要返回的列,在该索引中已经全部能够找到

使用id查询,直接走聚集索引查询,一次索引扫描,直接返回数据,性能高。

如果返回的列中没有创建索引,有可能会触发回表查询,尽量避免使用select *

MYSQL超大分页怎么处理 ?

覆盖索引+子查询

索引创建原则有哪些?

1). 数据量较大,且查询比较频繁的表

2). 常作为查询条件、排序、分组的字段

3). 字段内容区分度高

4). 内容较长,使用前缀索引

5). 尽量联合索引

6). 要控制索引的数量

7). 如果索引列不能存储NULL值,请在创建表时使用NOT NULL约束它

什么情况下索引会失效 ?

违反最左前缀法则

范围查询右边的列,不能使用索引

不要在索引列上进行运算操作, 索引将失效

字符串不加单引号,造成索引失效。(类型转换)

以%开头的Like模糊查询,索引失效

并发事务带来哪些问题?怎么解决这些问题呢?MySQL的默认隔离级别是?

并发事务的问题:

脏读:一个事务读到另外一个事务还没有提交的数据

 不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同

幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了”幻影”。

隔离级别:

READ UNCOMMITTED  未提交读

READ COMMITTED  读已提交

REPEATABLE READ  可重复读

SERIALIZABLE    串行化

解释一下MVCC

MySQL中的多版本并发控制。指维护一个数据的多个版本,使得读写操作没有冲突

隐藏字段:

trx_id(事务id),记录每一次操作的事务id,是自增的

roll_pointer(回滚指针),指向上一个版本的事务版本记录地址

undo log:

回滚日志,存储老版本数据

版本链:多个事务并行操作某一行记录,记录不同事务修改数据的版本,通过roll_pointer指针形成一个链表

readView解决的是一个事务查询选择版本的问题

根据readView的匹配规则和当前的一些事务id判断该访问那个版本的数据

不同的隔离级别快照读是不一样的,最终的访问的结果不一样

    RC :每一次执行快照读时生成ReadView

    RR:仅在事务中第一次执行快照读时生成ReadView,后续复用

分库分表

场景:

项目业务数据逐渐增多,或业务发展比较迅速

优化已解决不了性能问题(主从读写分离、查询索引…)

IO瓶颈(磁盘IO、网络IO)、CPU瓶颈(聚合查询、连接数太多)

垂直分库:

垂直分表:

把不常用的字段单独放在一张表

把text,blob等大字段拆分出来放在附表中 

冷热数据分离

减少IO过渡争抢,两表互不影响

水平分库:

解决了单库大数量,高并发的性能瓶颈问题

提高了系统的稳定性和可用性

水平分表:

优化单一表数据量过大而产生的性能问题;

避免IO争抢并减少锁表的几率;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/923825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

动捕设备之惯性动作捕捉,为何是数字人活动首选的动捕设备?

动捕设备是一种用于捕捉、记录和分析运动的设备,动捕设备可以实时追踪和记录人体的运动轨迹,并将这些动作捕捉数据传输到计算机上,赋予数字人身体姿态。而其中基于惯性动作捕捉技术的动捕设备VDSuit Full,是通过传感器实时测量人体…

【Hello Network】DNS协议 NAT技术 代理服务器

本篇博客简介:介绍DNS协议 NAT技术和代理服务器 网络各协议补充 DNSDNS背景DNS介绍DNS总结域名简介 NAT技术NAT技术背景NAT IP转换过程NAPTNAT技术缺陷NAT和代理服务器 网络协议总结应用层传输层网络层数据链路层 DNS DNS是一整套从域名映射到IP的系统 DNS背景 为…

【产品应用】一体化无刷电机在无泵罐装中的应用

随着科技的不断发展,电动化和智能化成为现代工业发展的两大趋势。在液体灌装领域,无泵罐装技术逐渐受到广泛关注。这种技术取消了传统的泵送系统,通过一体化无刷电机的应用,实现了更为高效、精确的灌装过程。本文将详细介绍一体化…

ICS PA1

ICS PA1 init.shmake 编译加速ISA计算机是个状态机程序是个状态机准备第一个客户程序parse_argsinit_randinit_loginit_meminit_isa load_img剩余的初始化工作运行第一个客户程序调试:零断点TUI 基础设施单步执行打印寄存器状态扫描内存 表达式求值词法分析递归求值…

Qt 雷达模拟仿真工具3.0

Qt 雷达模拟仿真工具3.0 文章目录 Qt 雷达模拟仿真工具3.0ChangeLog效果图Qt交流群 ChangeLog 原有功能1.0版本原有功能2.0版本增加百度在线地图;增加百度离线地图;增加地图街道图卫星图切换;增加地图缩放与雷达图距离联动;增加地图定位&…

icon图标一键制作,这个免费在线工具超好用!

图标设计看似微小,实则意义非凡。它能直观地表达抽象概念,减轻用户认知负担。设计师通过改变图标,可打造界面独特视觉风格。图标种类繁多,如平面、线条、玻璃、3D等。应用广泛,因此在线制作图标的设计工具备受设计师青睐。今天就来看看获取免费图标素材和快速在线制作图标的技巧…

CTFshow——web入门——反序列化web254-web278 详细Writeup

前言 在做题之前先简要总结一下知识点 private变量会被序列化为:\x00类名\x00变量名 protected变量会被序列化为: \x00\*\x00变量名 public变量会被序列化为:变量名__sleep() ://在对象被序列化之前运行__wakeup() //将在反序列化之后立即…

DIFFEDIT-图像编辑论文解读

文章目录 摘要算法Step1:计算编辑maskStep2:编码Step3:使用mask引导进行解码理论分析: 实验数据集:扩散模型:ImageNet数据集上实验消融实验IMAGEN数据集上实验COCO数据集上实验 结论 论文: 《D…

abap table control控制屏幕字段显示/隐藏

需求:隐藏TABEL CONTROL的某一列或者多列,其实针对这样子的需求,我们最常想到的就是通过设置字段属性为ACTIVE或INVISIBLE,经过测试,发现,此方法无效。 解决方法:通过CODING修改tabctrl-cols下…

Delphi 11.3 FMX 多设备平台中使用 TGrid 实现类似 TDBGrid 的效果

Delphi Firemonkey 中 TDBGrid 这个控件已经没有了。如何实现类似这个效果呢。其实可以用TGrid 来实现。以下用 11.3 来讲解。 查询里面用到的 connection 和 query 等控件那些一般的数据库用法,就不做过多描述了。请参考其他资料。 方法一.通过界面配置来实现 在…

SocketTools.NET 11.0.2148.1554 Crack

添加新功能以简化使用 URL 建立 TCP 连接的过程。 2023 年 8 月 23 日 - 12:35新版本 特征 添加了“HttpGetTextEx”函数,该函数在返回字符串缓冲区中的文本内容时提供附加选项。添加了对“FileTransfer”.NET 类和 ActiveX 控件中的“GetText”和“PutText”方法的…

尚硅谷大数据项目《在线教育之离线数仓》笔记004

视频地址:尚硅谷大数据项目《在线教育之离线数仓》_哔哩哔哩_bilibili 目录 第9章 数仓开发之DWD层 P049 P050 P051 P052 P053 P054 P055 P056 P057 P058 P059 P060 P061 P062 P063 P064 P065 P066 P067 P068 P069 P070 第9章 数仓开发之DWD…

java学习网站_Java程序员必看的学习网站

哔哩哔哩 B 站动力节点官方视频 https://space.bilibili.com/76542346?spm_id_from333.337.0.0 超多视频免费白嫖 专注 java 培训的动力节点 毕业学员业内高薪就业,逐渐得到了业界广大的好评,被业界誉为 “口口相传的 Java 黄埔军校 “。 网址&#x…

开机自启CPU设置定频

sudo apt-get install expect sudo apt-get install cpufrequtils具体步骤如下: 安装 cpufrequtils 工具 ⚫ sudo apt-get install cpufrequtils ⚫ 需要联网下载修改配置文件 ⚫ sudo vi /etc/init.d/cpufrequtils ⚫ 将 GOVERNOR“ondemand” 改为: &g…

Java 四种访问控制权限

1.背景: 针对java的类成员访问控制权限理解 2.Java有四种访问控制权限: private,protected,public,default 他们的具体访问权限都是什么呢?用例子来分析一下: 这里要分几个情景:内…

VR直播现场直击,让你的眼界无限扩大

近日,日本核废水入海闹的沸沸扬扬,我们可以看到有多个直播是在直击日本福岛核污染水排海实时画面,由此可见,直播让我们民众的眼界无限扩大。直播行业现在也是一大热门,但是VR直播则更胜一筹,犹如亲临现场的…

【瑞吉外卖】所遇问题及解决方法

太菜了实习之余瑞吉外卖补充一下基础知识(,不然真啥也不会了。 请输入正确的手机号! 是因为我测试了我的手机号,爆红,以为方法有错。但其实是前端代码检查手机号是否符合规范的语句有点()啊啊…

年中盘点2023最佳中概股:AI东风能加成几分?

互联网中概股有了摘掉“终丐股”帽子的盼头。2023年第二个财报季,阿里、腾讯、百度、网易等头部互联网公司都传来了好消息,营收、利润实现显著增长,释放出积极的信号。而且经历了长达两三年的漫长探底,7月纳斯达克中国金龙指数迎来…

openGauss学习笔记-49 openGauss 高级特性-索引推荐

文章目录 openGauss学习笔记-49 openGauss 高级特性-索引推荐49.1 单query索引推荐49.2 虚拟索引49.3 workload级别索引推荐 openGauss学习笔记-49 openGauss 高级特性-索引推荐 openGauss的索引推荐的功能,共包含三个子功能:单query索引推荐、虚拟索引…

一百六十五、Kettle——用海豚调度器调度Linux资源库中的kettle任务脚本(亲测、附流程截图)

一、目的 在Linux上脚本运行kettle的转换任务、无论是Linux本地还是Linux资源库都成功后,接下来就是用海豚调度Linux上kettle任务 尤其是团队开发中,基本都要使用共享资源库,所以我直接使用海豚调度Linux资源库的kettle任务脚本 二、前提条…