第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. 应用中有使用本地缓存,且占用了大量的内存空间。

调优调什么?

  • 内存分配+垃圾回收选配。
相关推荐
杨充1 分钟前
4.接口而非实现编程
java·后端·架构
2601_9545267518 分钟前
【硬核架构】打破 IT 与 OT 的数据孤岛!基于 Rust 异步协程的工业 IoT 网关重构,兼谈顶级自动化智能仪表厂家选型指南
物联网·架构·rust
郑州光合科技余经理30 分钟前
家政O2O平台解析:从0搭建上门预约小程序解决方案
android·java·开发语言·前端·小程序·架构·php
李福春1 小时前
SpecCoding + Harness:把 Vibe Coding 从「灵感」钉成「可交付」
架构
kisshyshy1 小时前
《川剧变脸 × React 状态管理?我在浏览器里跑了个端侧大模型》
前端·react.js·架构
小小猪的春天1 小时前
AI Code Review 例外决策框架:手动忽略警告之前,先回答4个问题
后端·架构
码云骑士1 小时前
71-Agent记忆系统-短期记忆-长期记忆-向量知识库三层架构
python·架构
后端优选官1 小时前
上海Agent开发公司:企业级智能体软件的技术架构与落地评估
数据库·人工智能·架构·软件开发·开发经验·上海
极光技术熊1 小时前
AI应用开发中的流式输出:从协议原理到工程实战的完整指南
后端·架构
小帽子_1231 小时前
PCS 电池双向充放电控制策略与均衡配合方案
架构