后端大厂面试总结大全六

news2024/11/24 4:07:17

目录:

    • 1、@Transactional注解控制事务有哪些不生效的场景
    • 2、MySQL的优化

1、@Transactional注解控制事务有哪些不生效的场景

  • 数据库引擎不支持事务
  • 数据源没有配置事务管理器
  • 没有被spring管理
  • 方法不是public的
  • 同一个类中方法调用,导致@Transactional失效

举例最后一个的解决办法:
在这里插入图片描述

  • 第一种解决办法,新建一个类一个方法,在a中注入新类,再通过新类调用事务注解的方法。
  • 第二种解决方法,就是在该类中注入自己,通过在a方法中,通过自己类的对象调用b的事务注解方法。

2、MySQL的优化

  • 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划
  • SQL语句中IN包含的值不应过多
  • SELECT语句务必指明字段名称
  • 当只需要一条数据的时候,使用limit 1
  • 如果限制条件中其他字段没有索引,尽量少用or
  • 尽量用union all代替union(使用union all前提是两张表没有重复数据)
  • 使用合理的分页方式以提高分页的效率(数据量太大,分页会越来越慢,建议使用id为条件来进行分页处理更快)
  • 分段查询(数据达到百万级,可以使用分段查询,循环展示数据,要的时候再加载数据)
  • 避免在where子句中对字段进行null值判断
  • 不建议使用%前缀模糊查询
  • 避免在where子句中对字段进行表达式操作
  • 对于联合索引来说,要遵守最左前缀法则(举列来说索引含有字段id、name、school,可以直接用id字段,也可以id、name这样的顺序,但是name;school都无法使用这个索引。所以在创建联合索引的时候一定要注意索引字段顺序,常用的查询字段放在最前面。)
  • 注意范围查询语句(对于联合索引来说,如果存在范围查询,比如between、>、<等条件时,会造成后面的索引字段失效。)
  • JOIN优化尽量使用inner join(等值关联查询),尽量使用小表来驱动大表。

19种优化建议

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

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

相关文章

2023云数据库技术沙龙MySQL x ClickHouse专场成功举办

4月22日&#xff0c;2023首届云数据库技术沙龙 MySQL x ClickHouse 专场&#xff0c;在杭州市海智中心成功举办。本次沙龙由玖章算术、菜根发展、良仓太炎共创联合主办。围绕“技术进化&#xff0c;让数据更智能”为主题&#xff0c;汇聚字节跳动、阿里云、玖章算术、华为云、腾…

gitee教程

二、安装git 要使用gitee&#xff0c;需要先安装git工具。git工具下载&#xff1a;Git - Downloadshttps://git-scm.com/downloads 下载好后,检查是否真的下载了&#xff1a; 三、登录gitee 我们先在 gitee上注册账号并登录。gitee官网&#xff1a;Gitee - 企业级 DevOps 研…

LINUX SVN 新建项目

从第三方代码创建代码库&#xff1a; 1、通过客户端进入服务端 2、在对应的目录创建新的项目/目录 在对应的目录右击 &#xff1a;creat folder... 例&#xff1a;创建testSvn 3、在客户端checkout(co) testSvn 4、将第三方源码(srcTest)拷贝到客户端下的对应路径 防止L…

Redis缓存更新策略

缓存更新是redis为了节约内存而设计出来的一个东西&#xff0c;主要是因为内存数据宝贵&#xff0c;当我们向redis插入太多数据&#xff0c;此时就可能会导致缓存中的数据过多&#xff0c;所以redis会对部分数据进行更新&#xff0c;或者把他叫为淘汰更合适。 1.缓存更新三种策…

Windows 自带环境变量

目录 Windows自带环境变量说明Windows自带环境变量总结 所谓 Windows 环境变量&#xff0c;指的是 Windows 指定操作系统工作环境的一些设置选项或属性参数&#xff0c;比方说指定系统文件夹或临时文件夹的位置等。与常量相比&#xff0c;一个环境变量往往由变量名称和变量值组…

深入了解Android系统中的音视频编解码器:MediaCodec

Media内核源码 Media内核是Android系统中负责音视频处理的核心模块&#xff0c;包括音视频采集、编解码、传输、播放等功能。Media内核源码位于Android源码树的/frameworks/av目录下&#xff0c;主要包括以下模块&#xff1a; media/libstagefright&#xff1a;包含了Media F…

设计模式——组件协作模式之策略模式

文章目录 前言一、“组件协作” 模式二、Strategy 策略模式1、动机2、模式定义3、代码示例4、结构 要点总结 前言 一、“组件协作” 模式 现代软件专业分工之后的第一个结果是 “框架与应用程序的划分”&#xff0c;“组件协作” 模式通过晚期绑定&#xff0c;来实现框架与应用…

【内网】WebStorm搭建Vue环境

文章目录 安装node.js和npm1、 Node.js和npm简介2、下载Node.js3、安装Node.js4、检查是否安装成功5、环境配置&#xff08;很重要&#xff01;&#xff09;6、配置内网离线库 安装WebStorm并运行Vue项目1、新建项目2、测试 安装node.js和npm 1、 Node.js和npm简介 简单的说 …

阿里云服务器-Linux

说明&#xff1a;自己想玩一下服务器&#xff0c;记录一下服务器安装的环境以及软件。包括JDK&#xff0c;Mysql&#xff0c;tomcat等。 一&#xff1a;JDK篇 服务器上也是需要安装JDK环境的&#xff0c;跑不掉的。阿里云服务器提供了命令安装&#xff0c;固定安装目录自动配…

【Jmeter】Oracle数据迁移,批量插入测试数据~

前言~1.准备事项1.1 梳理脚本 2.动起手来2.1 了解 JDBC Connection Configuration2.2 配置 JDBC请求 3.生成测试链路3.1 获取表主键信息3.2 获取目标表表结构3.3 拼接数据并生成sql3.4 插入数据 4.优化脚本&#xff08;主键信息4.1 添加Beshell后置处理器4.2 优化拼接数据请求&…

C++类与对象——this指针

文章目录 概述this指针的引出this指针的特性将this指针用于多个对象的比较this指针可以为空吗&#xff1f; 概述 本篇博客主要讲解C类和对象模块中的this指针的知识&#xff0c;将会深入探究this指针的使用细节即使用时需要注意的点&#xff0c;并且简单讲解一下底层的实现原理…

Maven(五):Maven的使用——依赖的测试

Maven&#xff08;五&#xff09;&#xff1a;Maven的使用——依赖的测试 前言一、实验六&#xff1a;测试依赖的范围1、依赖范围1.1 compile 和 test 对比1.2 compile 和 provided 对比1.3 结论 二、实验七&#xff1a;测试依赖的传递性1、依赖的传递性1.1 概念1.2 传递的原则…

内网渗透之横向移动rdpwinrmwinrsspnkerberos

0x00 准备 环境&#xff1a;god.org cs上线 win2008web 提权利用ms14-058 抓取hash和明文密码(当获取到其他主机就重复提权和抓取密码) 扫描存活主机&#xff0c;扫描端口 代理转发-转发上线&#xff0c;生成反向连接木马&#xff0c;绑定监听器&#xff0c;上传至web根目录(方…

hardhat 本地连接matemask钱包

Hardhat 安装 https://hardhat.org/hardhat-runner/docs/getting-started#quick-start Running a Local Hardhat Network Hardhat greatly simplifies the process of setting up a local network by having an in-built local blockchain which can be easily run through a…

制作一个高质量的FAQ页面需要考虑哪些因素?

作为现代企业不可缺少的知识库&#xff0c;FAQ页面&#xff08;Frequently Asked Questions&#xff09;是集中呈现重要信息供用户查询和解决问题的权威场所。如果您在网站上提供了不错的产品或服务&#xff0c;很多客户都会通过访问FAQ页面找到他们需要的答案。 在设计和创建…

Linux Ansible安装以及环境搭建

Ansible介绍 Ansible是一种基于Python的自动化配置工具&#xff0c;通过OpenSSH的方式管理被管理节点&#xff0c;实现批量系统配置、批量程序部署、批量运行命令等功能。 当管理节点需要管理被管理节点时&#xff0c;只需要在管理节点安装ansible&#xff0c;无需在被管理节…

23种设计模式-代理模式

代理模式 在代理模式&#xff08;Proxy Pattern&#xff09;中&#xff0c;一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中&#xff0c;我们创建具有现有对象的对象&#xff0c;以便向外界提供功能接口。 介绍 意图&#xff1a;为其他对象提供…

【KingSCADA】什么是精灵图以及如何创建精灵图

大家好&#xff0c;我是雷工&#xff01; 本篇学习精灵图的制作&#xff0c;以下为学习内容及相关笔记。 一、什么是精灵图 精灵图是一种在外观上类似组合图&#xff0c;但内部嵌入了比较丰富的动画链接与逻辑控制&#xff0c;工程开发人员只要将其从精灵图库中调出来放置在开…

[Netty] Mpsc Queue (十七)

JCTools 是适用于 JVM 并发开发的工具&#xff0c;主要提供了一些 JDK 确实的并发数据结构&#xff0c;例如非阻塞 Map、非阻塞 Queue 等。其中非阻塞队列可以分为四种类型&#xff0c;可以根据不同的场景选择使用。 Spsc 单生产者单消费者Mpsc 多生产者单消费者Spmc 单生产者…

大模型(LLM)训练微调综述学习

总览 介绍大模型训练的微调方法&#xff0c;包括prompt tuning、prefix tuning、LoRA、p-tuning和AdaLoRA等。介绍使用deepspeed和LoRA进行大模型训练的相关代码。给出petals的介绍&#xff0c;它可以将模型划分为多个块&#xff0c;每个用户的机器负责其中一块&#xff0c;分…