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

调优调什么?

  • 内存分配+垃圾回收选配。
相关推荐
yunteng5215 小时前
通用架构(同城双活)(单点接入)
架构·同城双活·单点接入
麦聪聊数据6 小时前
Web 原生架构如何重塑企业级数据库协作流?
数据库·sql·低代码·架构
程序员侠客行7 小时前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis
bobuddy8 小时前
射频收发机架构简介
架构·射频工程
桌面运维家8 小时前
vDisk考试环境IO性能怎么优化?VOI架构实战指南
架构
一个骇客10 小时前
让你的数据成为“操作日志”和“模型饲料”:事件溯源、CQRS与DataFrame漫谈
架构
鹏北海-RemHusband11 小时前
从零到一:基于 micro-app 的企业级微前端模板完整实现指南
前端·微服务·架构
2的n次方_13 小时前
Runtime 内存管理深化:推理批处理下的内存复用与生命周期精细控制
c语言·网络·架构
前端市界14 小时前
用 React 手搓一个 3D 翻页书籍组件,呼吸海浪式翻页,交互体验带感!
前端·架构·github
文艺理科生14 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
前端·后端·架构