第4节:项目性能优化(完)

数据库调优

请问这两条SQL语句有什么区别?

复制代码
# SQL01 - 效率更好
select id from tb_sku where name='华为 HUAWEI 麦芒7 6G+64G 魅海蓝 全网通 前置智慧 双摄 移动联通电信4G手机 双卡双待';

# SQL02 - 效率更好
select id from tb_sku where spu_id=10000018913700;

为什么需要进行数据库调优:

  • 提升网站整体吞吐量,优化用户体验;
  • 后端性能优化性价比最高的一种方式;

什么影响数据库性能?

  • Mysql:表结构设计,效率低下的sql语句,超大表,大事务,数据库相关配置,数据库架构;
  • 服务器:OS,CPU,memory,network。

数据库调优到底调什么?

  • 优化SQL语句,数据库表结构;
  • MYSQL配置调优:最大连接数,连接超时,线程缓存,查询缓存,排序缓存,连接查询缓存等;
  • DB服务器硬件优化:多核CPU,更大内存。

OpenResty调优

OpenResty是一个基于Nginx与Lua的高性能web平台,其内部集成了大量精良的Lua库,第三方模块以及大多数的依赖项。用于方便的搭建能够处理超高并发,扩展性极高的动态web应用,web服务和动态网关。

OpenRestry调优:反向代理集群服务;

调优结论:OpenRestry调优之后,TPS会在原有的基础上再翻倍。

JVM调优

为什么需要进行JVM调优:

  • 调优的最终目的都是为了应用程序使用最小的硬件消耗来承载更大的吞吐量;
  • 更少的内存,更低的延迟,更大的吞吐量,减少应用的GC暂停时间;
  • GC暂停会在高并发常见下,P99百分位的响应时间会产生影响。

什么时候进行JVM调优:

  1. 系统吞吐量与响应性能不高或者下降;
  2. Heap内存(老年代)持续上涨达到设置的最大内存值;
  3. Full GC次数频繁;
  4. GC停顿时间过长(1秒);
  5. 应用出现OutOfMemory等内存异常;
  6. 应用中有使用本地缓存,且占用了大量的内存空间。

调优调什么?

  • 内存分配+垃圾回收选配。
相关推荐
AI自动化工坊3 小时前
Late框架技术深度解析:5GB VRAM实现10倍AI编码效率的工程架构
人工智能·5g·架构·ai编程·late
空中海3 小时前
第六篇:架构篇 — 微服务、部署、高并发与专家级能力
微服务·云原生·架构
Wave8454 小时前
基于 STM32 + ESP8266 + W25Q64 的双核 OTA 底层架构总结
stm32·嵌入式硬件·架构
yongyoudayee5 小时前
CRM架构演进:从记录系统到执行引擎的技术解析
架构
源码宝5 小时前
基于 SpringBoot + Vue 的医院随访系统:技术架构与功能实现
java·vue.js·spring boot·架构·源码·随访系统·随访管理
有马贵将6 小时前
【5】微前端知识点总结
前端·架构
ting94520007 小时前
深入解析 Social Fetch 机制:原理、架构、应用场景、实战落地与性能优化全攻略
人工智能·性能优化·架构
ZOOOOOOU7 小时前
云边端协同架构下,门禁权限引擎的离线决策与策略续存实现
大数据·人工智能·架构
heimeiyingwang7 小时前
【架构实战】编排vs协同:微服务通信架构选型
微服务·云原生·架构
ai产品老杨8 小时前
深度解析:基于国产化异构计算的 AI 视频管理平台架构——从 GB28181 接入到 NPU 边缘推流的解耦实践
人工智能·架构·音视频