Bootstrap

JAVA知识点复习

性能优化必知法则

SQL 优化,JVM、DB,Tomcat 参数调优 >硬件性能优化 (内存升级、CPU 核心数增加、机械硬盘一> 固态硬盘等等)>业务逻辑优化/缓存 > 读写分离、集群等 > 分库分表

要理解性能优化的必知法则,首先需要了解优化的不同层次和顺序,以及每种优化方法的具体内容和作用。以下是对这些优化法则的逐一解释:

1. SQL 优化,JVM、DB,Tomcat 参数调优

SQL 优化:这是性能优化的首要任务,因为大多数应用程序的瓶颈往往在数据库层面。优化SQL查询可以显著减少数据库响应时间。常见的SQL优化方法包括:

  • 使用索引:为查询条件和排序字段添加索引。
  • 避免使用 SELECT *:只选择需要的字段。
  • 分析执行计划:使用数据库的执行计划工具来查找慢查询的瓶颈。
  • 优化连接(JOIN)操作:确保连接的表上有适当的索引。

JVM 调优:针对Java应用,JVM参数调优可以改善应用的性能和稳定性。调优内容包括:

  • 垃圾回收参数调整:根据应用特点选择合适的垃圾回收器(如G1、CMS)。
  • 内存设置:合理配置堆内存和非堆内存大小。
  • 线程栈大小:调整线程栈大小以优化多线程应用的性能。

DB 参数调优:数据库本身的参数调整也非常重要,涉及到:

  • 连接池配置:优化数据库连接池的大小和回收策略。
  • 缓存设置:调整数据库缓存的大小和策略。
  • 查询缓存:开启并优化查询缓存。

Tomcat 参数调优:对于使用Tomcat的Web应用,调优其参数可以提高并发处理能力和响应速度。涉及内容包括:

  • 线程池配置:调整最大线程数和最小空闲线程数。
  • 连接超时设置:配置合理的连接超时和保持活动时间。
  • 缓存设置:优化静态资源的缓存策略。

2. 硬件性能优化 (内存升级、CPU 核心数增加、机械硬盘换固态硬盘等)

硬件性能优化:这是在软件优化达到了瓶颈之后,进一步提升性能的手段。

  • 内存升级:增加服务器内存容量可以有效减少内存不足引起的交换操作,提高系统响应速度。
  • CPU 核心数增加:增加CPU核心数可以提升系统的并行处理能力,适用于多线程和高并发场景。
  • 硬盘升级:将机械硬盘换成固态硬盘(SSD),显著提高数据读写速度和系统启动速度。

3. 业务逻辑优化/缓存

业务逻辑优化:优化代码中的业务逻辑,使其更加高效。包括:

  • 减少不必要的计算和IO操作。
  • 优化算法,选择时间复杂度更低的算法。
  • 合理使用数据结构。

缓存:通过在内存中缓存频繁访问的数据,可以显著减少数据库访问次数,提升系统性能。

  • 使用内存缓存(如Redis、Memcached)。
  • 页面缓存:缓存生成的页面片段或整个页面,减少服务器端的生成开销。

4. 读写分离、集群等

读写分离:在数据库中,将读操作和写操作分离,通常将读操作分发到多个只读副本,以减轻主库的压力。

  • 主从复制:主库负责写操作,从库负责读操作。

集群:通过集群技术将负载分摊到多个服务器上,提高系统的可用性和处理能力。

  • 负载均衡:使用负载均衡器将请求分发到多个服务器上。
  • 分布式系统:将应用拆分成多个服务,通过微服务架构提升整体性能和灵活性。

5. 分库分表

分库分表:当单个数据库和表的容量和并发达到瓶颈时,将数据拆分到多个数据库和表中,以提高系统的扩展性和性能。

  • 垂直拆分:根据不同的业务模块,将数据分布到不同的库中。
  • 水平拆分:将同一表的数据按某种规则(如ID范围、哈希值)拆分到多个表或库中。
;