经常会遇到的性能优化的问题-----聊聊

1、应用高并发如何优化

  • 架构优化
    • 软硬负载均衡的使用
    • 缓存的使用
    • 快速读写的使用
    • 处理复杂度比较高且可以剥离使用异步的,使用异步响应  
  • 代码优化
    • 避免死锁
    • 锁粒度的控制
    • 线程池的使用:业务复杂度的控制
    • 内存分配:避免大块内存的分配,避免内存泄漏的发生,避免递归调用,threadlocal使用时,在业务逻辑结束时,显示调用remove方法。
    • cpu资源的使用:线程的合理分配及回收,优先级等的出让,IO模式的使用
    • 异常的捕捉处理
  • 一句话,高并发,就在于cpu的高度利用,以及io等的高度配合,所以阻塞模式如bio等是一个大大的阻碍,而同步计算时长时间耗时的处理
  • 当然最终目的是,对用户或者调用方的及时响应    

2、数据库怎么优化

  • 存储优化
    • 持久性:主备,避免单点问题
    • 合适的存储引擎选取
    • 合适的raid级别
    • 网络及连接数、编码等参数的设置  
  • 访问优化
    • 访问次数同获取内容量之间的折衷
    • 链接的合理重复利用:常见连接池
    • 读缓存优于读磁盘
    • 建立合理的索引并利用
    • 避免添加列的修改  
  • sql优化
    • 合理利用索引
    • fetch适当的数据:避免全部捞取,占用带宽
    • 排序或者复杂逻辑尽量在程序部分使用
    • 使用执行计划
    • 对慢查询优化
    • 分库分表的使用
    • 缓存的使用:对于非实时性要求特别高或者统计类的数据展示,可以引入缓存
    • nosql的使用:合理的使用
  • 当然DBA的介入非常必要,专业。    
原文地址:https://www.cnblogs.com/leeying/p/3877662.html