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

Java[面试题]-真实面试2.0

4.sql语句怎么优化的?

想想面试官问这个问题的目的是什么?是让sql执行的更加快,提高效率对吧

(1)加合适的索引

加索引能大幅度提高查询的性能,但是也不能随便加索引加过多,你想类似于这种性别,0,1加了就没什么意义,一般常用的我们加的每个表的主键就是一个索引

对表进行 JOIN 操作、大量 WHERE 条件筛选、排序(ORDER BY)、分组(GROUP BY)时,加索引能提高效率。

避免过多索引:过多的索引会增加 INSERTUPDATEDELETE 操作的成本,导致数据库性能下降。

(2)避免使用 SELECT *(老生常谈了)

select * 是查询表中所有字段,查对应字段就应该写出对应字段,减少数据传输和内存消耗

(3)减少不必要的 JOIN

避免使用过多的 JOIN,尤其是 CROSS JOINOUTER JOIN。确保 JOIN 操作中使用的字段有索引。过多的 JOIN 会增加查询的计算量和内存消耗

-- 优化前
SELECT * FROM users WHERE user_id = 1;-- 优化后
SELECT user_id, username, email FROM users WHERE user_id = 1;

(4)使用 EXPLAIN 分析查询

EXPLAIN 命令可以帮助你分析 SQL 查询的执行计划,了解查询的执行顺序、使用的索引以及可能的瓶颈。这有助于识别慢查询和优化的方向

EXPLAIN SELECT * FROM orders WHERE customer_id = 123;

具体查看这个中详细介绍EXPLAIN执行计划以及索引失效的几种情况

Java面试题-基础部分(2)-CSDN博客

5.数据库表有接触过么?你是怎么设计的?

你肯定就说接触过,在和组长确认业务流程,之后根据业务自己设计表。

我们之前用的是mysql数据库嘛,然后就用Navicat,点开个数据库连接之后呢,点击表右键“新建表”==》添加表字段等等一般会设置id为唯一值并设置为主键(就是讲具体怎么设计,不要讲假大空)

6.你做的项目用的Springboot还是SpringCloud?有什么不一样呢?

之前用的是boot,现在我们改成了cloud,我觉得他们最大的区别?

Spring Boot能快速搭建一个生产级别的 Spring 应用,采用大量注解减少了繁琐的配置,而且能够支持SpringCloud。

一个SpringCloud里包含多个Spring Boot子项目,Spring Cloud 是一组工具和框架的集合,用于构建分布式系统,尤其是微服务架构。它为开发者提供了开箱即用的解决方案来处理微服务的各种常见问题,如服务注册与发现、配置管理、负载均衡、断路器、消息传递等。

在微服务架构中,通常会使用 Spring Boot 构建每个独立的微服务,而 Spring Cloud 则用来处理这些微服务之间的交互、管理、监控等问题

SpringCloud核心特性

  • 服务发现:Spring Cloud 提供了服务注册与发现的功能,通常配合 Eureka 或 Consul 等服务注册中心一起使用,使得微服务能够动态发现和访问其他服务。
  • 分布式配置:使用 Spring Cloud Config 实现集中式配置管理,可以将服务的配置与应用解耦,并且支持不同环境的配置文件。
  • 负载均衡:通过 Spring Cloud Netflix Ribbon 或 Spring Cloud LoadBalancer 提供客户端负载均衡。
  • 断路器:集成了 Hystrix 或 Resilience4J 实现断路器模式,防止某个微服务失败影响整个系统。
  • API 网关:Spring Cloud Gateway 或 Zuul 提供网关功能,负责路由、负载均衡、安全控制等。
  • 消息总线:Spring Cloud Stream 和 Spring Cloud Bus 提供了消息驱动的解决方案。


http://www.mrgr.cn/news/68298.html

相关文章:

  • ubuntu 22.04 硬件配置 查看 显卡
  • YOLO11改进 | 融合改进 | C3k2融合 Context Anchor Attention 【两个版本融合-独家创新】
  • 实战攻略 | ClickHouse优化之FINAL查询加速
  • 【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
  • 基于MySQL的企业专利数据高效查询与统计实现
  • 【伙伴云-注册安全分析报告】
  • 【NLP自然语言处理】深入探索Self-Attention:自注意力机制详解
  • 纹理分析——模型分析方法
  • 大数据-214 数据挖掘 机器学习理论 - KMeans Python 实现 算法验证 sklearn n_clusters labels
  • 【H2O2|全栈】阶段常见面试题(二)【万字大长篇】
  • Arc 浏览器快捷键一网打尽
  • 面试官:什么是雪花算法?啥原理?
  • Windows系统安装部署C++基础开发环境
  • ubuntu内核切换network unclaimed 网卡丢失
  • 河南建筑装饰工程设计专项资质办理成功案例
  • Find My电子秒表|苹果Find My技术与秒表结合,智能防丢,全球定位
  • Kaggle生物信息学挑战:酶稳定性预测大赛
  • 免费数据集网站
  • 快速上手 muduo
  • 05-如何统一管理纷繁杂乱的数据指标?
  • Bsin-kb-agent:企业级AI知识库
  • 九泰智库 | 医械周刊- Vol.68
  • 第3篇 滑动开关控制LED__ARM汇编语言工程<一>
  • Springboot 整合 Java DL4J 打造自然语言处理之语音识别系统
  • aspose如何获取PPT放映页“切换”的“持续时间”值
  • 黑龙江二级等保与CDN的深度关联:加速安全,护航数字化转型