浅谈服务器压力解决方案
2023-09-14 08:59:54 时间
优化服务器性能,从后往前说归根结底不外乎以前几种情况:
- 优化数据库
- 优化代码
- 使用静态数据
下面就分别做下介绍。
一、数据库优化
- 尽可能的使用SP,而不是让sql语句裸奔;
- 表结构设计要合理,起码要遵守三范式;
数据库设计三范式: 第一范式:原子性。表中不能套表 第二范式:有主键 第三范式:引用通过主键.
- 合理地设计索引,正确地使用索引;
- 对于超极大表(千万级别)最好采用分区表的方式存放,Oralce、SqlServer和Mysql都支持。
二、业务代码优化
- 减少数据库往返,
数据库连接是很重要且宝贵的资源,尽量避免没调用一次方法就读取一次数据库的情况,别小看这一条,我在项目就看到有同事在一个for循环中都次读取数据库。
尤其避免绑定的时候都次执行存储过程; - 合理正确的使用缓存,通过全局变量来保存一些设定,或是页面级缓存、站点级别缓存来减少服务器压力;
如果是大内存服务器,我见过最大96G内存的服务器,可以把一些重要数据放在内存中,利用Nosql做成内存缓存,当然这是另一个话题了; - 多用Ajax和客户端js、html代码,少用服务器控件,减少刷新和生成冗余的viewstate;
- 采用好的数据结构和算法;
哈系类性能最好,查找的复杂度是O(1),例如Dictionary<K,V>
二叉树查找复杂度O(logn),排序O(n*logn),List和ArrayList自带的排序速度接近O(n*logn),
数组类的线性查找O(n),如果你用冒泡排序O(n*n),那么你不是优秀的程序员。
StringBuilder 性能好于 string+=,不过提升的有限,不是本质的数量级别的提升。 - 及时关闭非托管资源;
除了上面提到的数据库connection,文件IO等也要注意。
三、使用静态数据
- 使用静态数据也很重要,可以提升速度2个数量级(百倍),例如门户网站、大型网站的首页,引用由特定服务生成的静态数据(js、txt、html等)速度会很快;
- 图片、文件、数据服务器分流,可以提升1个数量级(十倍)
web服务器1台或多台;
图片服务器1台或多台;
文件服务器1台或多台;
数据库服务器1台或多台; - CDN
相关文章
- 服务器安装gtx系列显卡驱动,win10装不上GTX1080显卡驱动怎么回事 win10安装不了gtx1080驱动现象的解决方案…
- VSCode将一份代码同步到多台服务器的解决方案
- 0x00000116蓝屏解决方案_centos7重启服务器命令
- Debian搭建我的世界(MC) forge 1.19.3 服务器教程
- 腾讯云windows服务器切换vpc失败的解决方案
- 超 38 万个 K8s 服务器!被当作攻击目标!
- 从零搭建自己的公网GBT28181流媒体服务器解决方案
- win2003服务器不支持Flv和ANI格式文件的解决方案
- TRICONEX 3503EN 数据馈送安全集成服务器
- Java 服务器获取请求的IP方法详解编程语言
- Linux服务器批量管理:全面而高效的解决方案(linux服务器批量管理)
- Linux 网卡配置DNS服务器解决方案(linux网卡dns)
- 卸载Linux下的Tomcat服务器(linux卸载tomcat)
- 快速传输:Linux服务器之间的文件传输(linux服务器间传文件)
- 器数据库如何安全删除MySQL服务器数据库(怎么删除mysql服务)
- MongoDB服务器:打开新的数据存储大门(mongodb服务器)
- Linux SVN服务器停止运行的解决方案(linuxsvn停止)
- 解决方案使用远程Linux服务器实现优雅的桌面环境(远程linux服务器桌面)
- Linux服务器丢包严重:面临的风险及解决方案(linux服务器丢包严重)
- 专业Linux服务器管理:MQ安装及下载(linuxmq下载)
- Linux服务器:深刻理解与实战(linux服务器书籍)
- SQL Server——优质的数据库服务器解决方案(关于SQLServer)
- 修改MSSQL服务器的监听地址配置及相应解决方案(修改mssql监听地址)
- 构建基于Linux的网络服务器体系结构(网络linux服务器)
- PHP如何连接MS SQL服务器(php怎么连接mssql)
- Linux上构建服务器:简单而又高效(在linux上搭建服务器)
- 下载Linux服务器文件:快速高效的解决方案(下载linux服务器文件)
- 双赢收获中台数据服务器Redis的应用(中台数据服务redis)
- Oracle 9i服务器强大的数据库解决方案(oracle 9i服务器)
- 服务器ARP病毒的特征及防护说明
- Tornado服务器中绑定域名、虚拟主机的方法