首页 > 其他分享 >中信梧桐港二面、公安部第一研究所

中信梧桐港二面、公安部第一研究所

时间:2024-03-14 12:00:48浏览次数:30  
标签:二面 梧桐 公安部 XX 内存 JVM 使用 2.2 where

1.中信梧桐港二面

1.1 除了SQL提高数据查询优化,还有什么Java层面的优化?

  缓存,消息队列异步化(当时竟然没想到,自己还做过)

1.2 字段索引失效

  1. 频繁增删改的字段
  2. 不是where的字段
  3. 数据太少的表
  4. 增删改多的表

 2.公安部第一研究所

2.1 G1收集器的特点:

  1. 实时的垃圾回收
  2. 区域化管理
  3. 并发标记
  4. 缺点:大量小对象回收时不如其他回收器

2.2 OMM的排查方法

  OMM即Out of Memory(内存耗尽)。JVM无空间为对象分配内存,垃圾回收器无可回收内存时报错。

    2.2.1 出现OMM的原因:

  1. 内存溢出:JVM初始内存小,业务使用大量内存;JVM区域分配内存不合理
  2.  内存漏洞:某一对象被频繁使用,使用完后未被释放,导致内存耗尽(如ThreadLocal未在使用remove方法)

    2.2.2 常见的OOM

  1. 方法区溢出:存储虚拟机加载的类信息、常量、静态变量,即编译器编译后的代码。大量Class对象、JSP页面或CGLIB动态代理导致;可通过-XX:PermSize 和 -XX:MaxPermSize 修改方法区大小
  2. 虚拟栈溢出:死循环、深度递归或栈设置太小,可通过-XX:PermSize 和 -XX:MaxPermSize 修改方法区大小。可通过日志定位错误的类、方法
  3. 堆内存溢出:堆内存设置不合理,堆内存溢出(可通过工具查看对象到GC Root的引用链)

    2.2.3 堆溢出排查方法

  1. 查看内存分布:jmap -heap PID(查看JVM内存分配以及运行情况)
  2. 查看最耗费资源对象:jmap -histo:live PID | more
  3. Dump文件分析:Dump文件是Java内存的镜像。存储系统信息虚拟机属性完整的线程 Dump所有类和对象的状态 等信息

    2.2.4 JVM 启动参数配置添加以下参数

  • -XX:+HeapDumpOnOutOfMemoryError

  • -XX:HeapDumpPath=./(参数为 Dump 文件生成路径)

    2.2.5 在JVM运行时导出

  jmap -dump:file=[文件路径] [pid]
  jmap -dump:file=./jvmdump.hprof 15162

    2.2.6 使用工具:JvisualVM

3. SQL优化

    3.1 Mysql优化原则

  1. 减少数据访问:设置合理的字段类型,启用压缩,通过索引访问减少磁盘IO
  2. 返回更少的数据只返回需要的字段和数据分页处理,减少磁盘IO以及网络IO
  3. 减少交互次数批量DML操作,函数存储等减少数据连接次数
  4. 减少服务器开销:尽量减少数据库排序操作以及全表查询,减少CPU内存占用
  5. 利用更多资源:使用表分区,增加并行操作,更大限度使用CPU资源

    3.2 SQL优化

  1. 最大化利用索引
  2. 尽可能避免全表扫描:开头模糊查询(右模糊,一定要用:大数据es、几千条全模糊),In和not In(数值,between on、子查询exists),or(union),null判断(字段默认0),左侧表达式、函数操作(表达式函数移到右侧),大数据时不使用where1=1、<>或!=、联合索引最左匹配、类型转换、where与order by条件不一致
  3. 减少无效数据查询
  4. 其他优化:避免select * 、避免不确定结果函数、多表关联,小表前大表后(Mysql从左到右,第一张表全表查,Oracle相反)、使用类别名(减少解析)、避免having(检索所有记录再过滤)、where字句顺序(Mysql从左至右,自上到下解析where子句,可将过滤数据多的条件往前方,最快缩小结果集)。
  5. 查询条件优化:如果分组不要求排序,则使用order by null,join优化,合理分页
  6. 建表优化:有现在where、order by使用的字段建立索引,尽量使用数字类型字段(男:1,女:0)、大数据,使用分段分页查询、使用varchar/nvarchar代替char/nchar

3.3 select执行顺序:from on join where group by having select distinct order by limit  

 

标签:二面,梧桐,公安部,XX,内存,JVM,使用,2.2,where
From: https://www.cnblogs.com/kzf-99/p/18072277

相关文章

  • 阿里二面:如何定位&避免死锁?连着两个面试问到了!
    在面试过程中,死锁是必问的知识点,当然死锁也是我们日常开发中也会遇到的一个问题,同时一些业务场景例如库存扣减,银行转账等都需要去考虑如何避免死锁,一旦线上发生了死锁,那可能年终不保。。。。。下面我们就来聊一聊死锁如何定位,以及如何避免。什么是死锁死锁(Deadlock)是指在操作系......
  • 1.友机、法本、中信梧桐港面试
    1.友机1)SpringBoot启动流程解答:①首先从主启动类的mian()方法找到SpringApplication对象的run方法②进入run方法,创建应用监听器SpringApplicationRunListener开始监听③加载SpringBoot配置环境(ConfigurationEnvironment),将配置环境(Environment)加入监听对象中④加载应用上下文(Confi......
  • 华为二面:SpringBoot读取配置文件的原理是什么?加载顺序是什么?
    引言SpringBoot以其简化的配置和强大的开箱即用功能而备受欢迎,而配置文件的加载是SpringBoot应用启动过程中的关键步骤之一。深入理解SpringBoot启动时如何加载配置文件的源码,有助于开发者更好地理解其内部工作原理,提高配置管理的灵活性和可维护性。本文将从源码入手,解读Sprin......
  • 华为二面:SpringBoot如何自定义Starter?
    SpringBoot的自动配置机制为开发人员提供了一种轻松集成和配置各种功能的便捷方式。然而,随着项目的复杂性增加,更好地组织和分享通用功能变得至关重要。自定义Starter成为了理想的解决方案,旨在简化项目的依赖管理和自动配置,使开发者能够迅速而灵活地集成特定的功能模块。本文将深......
  • 阿里二面:SpringBoot可以同时处理多少个请求?当场懵了。。。。
    SpringBoot以其简洁高效的开发方式和强大的内嵌容器特性,为开发者提供了构建高性能后端服务的便利。然而,当面临高并发场景时,理解并合理配置SpringBoot应用以达到最佳的并发处理能力至关重要。在SpringBoot中,应用程序对HTTP请求的并发处理主要依赖于内嵌的Servlet容器(如Tomcat)。接......
  • 24校招,快手测试开发工程师二面
    前言大家好,我是chowley,今天回顾一下,之前参加快手的校招面试全程没有测试方向问题,一直拷打编程语言特性和数据底层结构时间:50min平台:轻雀(请勿切屏)过程自我介绍用的编程语言?python回顾一下学python的历程在你接触过的所有的算法,你最擅长的TOP3是啥?双指针、二叉树、回溯写......
  • 24校招,小鹏汽车自动驾驶测试工程师二面
    前言大家好,我是chowley,今天回顾一下,之前参加的自动驾驶测试工程师面试时间:40min平台:飞书过程自我介绍实习经历拿了哪些offer,为啥还在面?加入一个公司,你期望得到哪些培养?你现在负责的工作?开发方面做了哪些?说一下你学自动化测试的进展接口端和web端的测试有哪些区别?还面......
  • 24校招,经纬恒润测试工程师PPT技术二面
    前言大家好,我是chowley,今天回顾一下之前参加的PPT工程师面试(doge)面试官针对我的PPT进行提问,梦回大学课堂时间:40min平台:腾讯会议过程20minPPT展示PPT做了多长时间?你觉得你展示的内容怎么样?CI/CDpipeline中接口自动化脚本是你自己写的吗?你负责哪些部分?快速测试你是怎么......
  • 权威认证|智安云平台荣获公安部首批网络安全产品认证
    近日,智安网络云综合防御平台V3.0通过公安部复杂专业的安全测试,荣获了网络安全产品认证证书,据悉,这是公安部颁发的首批证书。......
  • 双二面角耦合力场项的计算
    技术背景当我们使用分子力场进行分子动力学模拟时,通常包括成键相互作用(键长项、键角项和二面角项)和非成键相互作用(范德华力)。而其中成键相互作用,可以根据作用的范围,进一步定义成1-2相互作用、1-3相互作用和1-4相互作用,也就是键长键角和二面角。在FF19SB力场中,为了进一步提升力场......