后端优化方案

后端优化方案

1,负载均衡(反向代理),通过设置nginx或apache为服务器分流。

当用户访问服务器时,nginx会查看预先配置好的几个服务器的连接状态,将新的访问请求分配给状态比较好的服务器。

2,静态资源开启Gzip压缩。

在服务端开启gzip使文件传输加快,更快释放连接。

3,分布式服务器
4,页面静态化

当客户端发起新的数据请求后,程序通过apc之类的软件将动态页保存为静态页面并存储在服务器指定位置。当客户端再次发起相同的请求时直接返回之前保存的静态页面,以此减少数据库查询及后端运算操作。你可以设置定时清理或当磁盘容量达到指定数值时清理生成的静态页面,还可以像队列那样设置只清理最早生成的页面。该方案的优点是可以大幅提升网站性能,遇到故障可以更快恢复到之前的状态,因为即使服务器重启也不会失去之前生成的静态页面。与其他方案相比成本更低,因为在整个服务器硬件中硬盘容量的价格算是比较低廉的。是种用硬盘io取代数据库查询和后端运算的方案。

5,使用内存型数据库

通过使用类redis、memcache等程序,将动态运算或查询结果直接保存在服务器内存中。该方案的特点是速度更快,因为内存io要远比硬盘io来的更快。但缺点也很明显,不适合保存整页只适合保存数据;需要增加服务器内存,使得该方案成本更高;内存容量有限;一旦服务器发生故障或重启,一切数据都会重置(如果是手动重启可以设置重启前保将数据保存在磁盘,但如果是服务器故障就不行了)。是种用内存io替换数据库查询及运算消耗的方案。

6,数据库字段加密压缩。

从数据库输出字段时应使用加密压缩的字段,这样不仅达到优化效果还能起到加密作用。比如表的字段是 name:alex;age:12。输出时应该是a:alex,b:12。

7,静态资源分离。静态文件资源应使用cdn。

最常遇到的场景莫过于使用bootstrap或jquery等前端框架的时候了,直接从专业服务商的节点服务器引用肯定要比在你的主服务器上引用好多了。节省服务器和带宽。

8,为数据库加索引。

索引是B-tree的方法实现,可以较少查询次数大幅提升数据库性能。

9,数据库读写分离(主从复制)。

将数据库的读写拆分为不同的数据库。数据更新到“写”的数据后,再自动同步到“读"的库。优点:我们知道写操作其实更消耗数据库性能,该方案将读写拆分,不仅提升了读写的性能,还可以通过合并写操作,闲时更新等方法优化。缺点嘛,数据更新有延迟。

10,横纵分表。

当一个表由于字段过多而臃肿时,会产生很多性能或维护的麻烦。这时就应该将字段再次细分并建立对应关系,然后再横向分表以达到优化目的。当一个表数据量过于庞大时,就会产生很多查询或维护问题。这时就需要纵向分表。(比如你有1000条数据,将这1000条数据分成a、b两个表,每个表500条。查询时可以同时在这两个表中查询,也可以按a、b的顺序查询,还可以按某个主字段的打头拼音分表,然后查询时直接就定位到那个表查询,无论哪种都可以提升查询效率)

11,开启慢查询

开启mysql的慢查询日志。将查询耗时超过指定时间的请求记录在日志中。方便定位问题。

你可能感兴趣的:(#,server,#,数据库)