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

后端大厂面试总结大全六

目录:

    • 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.lryc.cn/news/61505.html

相关文章:

  • 2023五一数学建模A题B题C题思路模型代码
  • Redis --- 入门、数据类型
  • 超级详解MySQL执行计划explain
  • C++流操作
  • Django连接Redis、数据库、mongodb密码明文存储问题以及方案
  • Qt实现仿微信在线聊天工具(服务器、客户端)V1_ 02
  • Direct local .aar file dependencies are not supported when building an AAR.
  • 【Java基础】day16
  • Neo4j | 一文入门Neo4j!
  • Python科研数据可视化
  • 叫板IT部门和专业软件公司,低代码成为企业数字化的新选择
  • leetcode 541. 反转字符串 II
  • java数据类型的转换以及精度丢失
  • 网络通信基础 - 多路复用技术(频分多路复用、时分多路复用、波分多路复用)
  • Baumer工业相机堡盟工业相机如何通过BGAPISDK的函数转换示Bayer格式为BGR8格式彩色图像(C++)
  • 一块钱看Android Debug: avc denied 已存在的目录不能访问
  • URL 转为QR code(二维码)
  • CentOS软件那么老为什么大家还要用它?
  • 聚观早报|飞猪:五一出游需求爆发;​特斯拉一季度盈利同比跌20%
  • Redis缓存雪崩、穿透、击穿
  • 不要老盯着ChatGPT,这几家公司的产品同样不容小觑
  • DataBinding 大坑总结(网上我暂时搜不到解决方法)
  • Linux I/O复用函数的使用情况和select接口的介绍
  • leetcode:数字转换为十六进制数(详解)
  • Android 10 设置人脸解锁时,锁屏显示人脸解锁图标
  • 【嵌入式环境下linux内核及驱动学习笔记-(5-驱动的并发控制机制)】
  • 必学宝典 黑马《最新JavaWeb开发教程》上线
  • 【社区图书馆】学习如何读书
  • CO02工单组件,新增/删除/修改
  • MIT6.824 lab3AB记录