网站性能优化对于大型网站来说的重要性有哪些?
2021-09-12
网站性能优化对于大型网站来说非常重要。网站的打开速度会影响用户体验。网站访问速度慢会导致高跳出率。小网站很容易解决。对于大型网站,由于栏目较多,图片和图片都比较大,那么如何优化整体性能?
一、大型网站性能提升策略
1、HTML 静态化
其实大家都知道效率最高、消耗最少的是纯静态HTML页面php网站部署到服务器,所以我们尽量让我们网站的页面都使用静态页面。这种最简单的方法其实是最有效的方法。 .
2、图片服务器分离
众所周知,对于web服务器,无论是IIS还是其他容器,图片都是最消耗资源的,所以我们需要将图片和页面分开。这基本上是大型网站采用的策略。它们有独立的甚至很多的图像服务器。这样的架构可以减轻提供页面访问请求的服务器系统的压力,并且可以保证系统不会因为图像问题而崩溃。在应用服务器和镜像服务器上,可以进行不同的配置优化。比如在配置的时候,可以尽可能少的支持,尽可能的少,以保证更高的系统消耗和执行效率。
3、数据库集群,库表hash
大型网站具有复杂的应用程序。这些应用程序必须使用数据库。当面对大量的访问时,数据库的瓶颈很快就会暴露出来。这时候一个数据库很快就无法满足应用,所以我们需要使用数据库集群或者数据库表hash。
在数据库集群方面,很多数据库都有自己的解决方案,也提供了常用/类似的解决方案。
集群通常使用 CDN、GSBL 和 DNS 负载均衡技术。每个地区有一组前端服务器组,如网易,百度使用DNS负载均衡技术,每个频道有一组前端服务器,易搜使用DNS Load技术,所有频道共享一组前端服务器端服务器集群。
库表哈希是最常用和最有效的解决方案。
我们在应用程序中安装业务和应用程序或功能模块来分离数据库。不同的模块对应不同的数据库或者表,然后按照一定的策略对某个页面或者函数进行更小的数据库hash,比如根据用户ID对用户表进行hash,这样可以提高系统的性能成本低,可扩展性好。
搜狐的论坛采用这样的结构,将论坛的用户、设置、帖子等信息的数据库分开,然后根据帖子和用户的和ID对数据库和表进行hash,最后可以得到在配置文件中完成。简单的配置允许系统随时添加低成本的数据库来补充系统性能。
4、
所有从事技术的人都使用过“缓存”一词,并且很多地方都使用缓存。 网站开发 中的网站架构和缓存也很重要。这里首先描述两个最基本的缓存。稍后将描述高级和分布式缓存。至于架构上的缓存,熟悉它的人都知道,它提供了自己的缓存模块,或者可以使用额外的模块进行缓存。这两种方法都可以有效提高访问响应能力。
网站程序开发的缓存提供了常用的缓存接口,可以在web开发中使用。比如在Java开发的时候,可以调用缓存一些数据,共享通信。一些大型社区使用这种架构。另外,在使用web语言开发的时候,各种语言基本都有自己的缓存模块和方法,PHP有Pear模块,Java比较多,.net也不是很熟悉,相信会有的。
5、
镜像是大型网站经常使用的一种提高性能和数据安全性的方法。镜像技术可以解决由于不同的网络接入商和地区造成的用户访问速度的差异。比如很多网站的区别和推广 镜像网站建在教育网,数据定期或实时更新。
6、负载均衡
负载均衡将是大型网站解决高负载访问和大量并发请求的高端方案。负载均衡技术发展多年,有很多专业的服务商和产品可供选择。
二、PHP 代码编写优化:
1. echo 比它快得多。
两种方法都会在页面上打印东西,但是echo不返回任何值,成功或失败都会返回0或1。
2. 比这更耗时。
因为它需要检查你要包含的内容是否已经包含。
3. 对于长段落的字符串,必须使用单引号而不是双引号。
因为双引号会搜索字符串中的变量。例如:echo ‘This is long ’。 $name 比 echo "This is long $name" 快得多。
4. 不要使用嵌套在循环中的 for 循环
5. 如果可以将函数定义为静态函数,则不要将其定义为成员函数。静态函数比成员函数快 33%。
6.如果不用正则表达式也能解决问题,那就不要使用正则表达式。
正则表达式比 PHP 的原生函数慢。例如,使用替换。
7. 尽量不要使用相对路径来包含文件
在相对路径中搜索文件,会在当前目录中搜索,然后依次再次搜索。这样,查找文件非常慢。最好先定义这样一个常量,然后用这个常量来包含文件。
8.全等符号===比等式快==
而 if (1 == '1') 会返回真,if (0 == ”) 也会返回真,而当你使用全等符号时, if (1 ==='1') 和 if (0 ===”) 将返回。所以当你需要检查程序中的一些布尔变量时,最好使用全等符号。
三、三、有几种方式
1.关闭调试模式
由于关闭调试模式,系统会自动生成项目编译缓存并关闭日志写入,可以减少大量的IO加载和日志写入开销。
2.启用页面压缩输出
从3.1版本开始,增加了配置参数来控制页面压缩输出。
3.启用缓存
在网站部署环境中安装APC或缓存,可以有效提升网站性能和内存使用率。它是一个开源缓存/优化器,这意味着它可以提高 PHP 在您的服务器上的性能。 PHP 编译后数据缓存到共享内存,避免重复编译过程,编译后的代码可以直接用来缓存编译后的代码,提高速度。通常它可以将您的页面生成率提高 2 到 5 倍并减少服务器负载。 PHP(APC)是一种有效的PHP开源缓存工具,可以缓存PHP中间代码。
4. 字段缓存
默认情况下,字段缓存是自动生成的。开发完成后,基本上数据库的变化变少了,所以可以考虑将字段缓存合并到对应的模型类中,这样可以减少每次读取字段缓存的IO开销。合并的方法是在/Data/
下找到对应的字段缓存文件
四、 数据库优化
1、选择合适的存储引擎
举个例子,有两个存储引擎和。每个引擎都有优点和缺点。它适用于一些需要大量查询的应用。趋势将是一个非常复杂的存储引擎,对于一些小型应用程序,它会比这更慢。但它支持“行锁”并支持事务。
2、优化字段的数据类型
记住一个原则,列越小,速度越快。对于大多数数据库引擎,硬盘操作可能是最重要的瓶颈。因此,在这种情况下,使您的数据紧凑将非常有帮助,因为它减少了对硬盘的访问。如果一个表只有几列(比如字典表、配置表),那么我们没有理由使用INT作为主键。使用INT或更小更经济。如果不需要记录时间,使用DATE会好很多。当然,你也需要留出足够的扩展空间。
3、为搜索字段添加索引
索引不一定用于主键或唯一字段。如果你的表中有一个字段你会经常使用,那么最好为其建立一个索引,除非你要搜索的字段是一个大文本字段,那么你应该建立一个全文索引.
4、 *从数据库读取的数据越多,查询越慢。
而且,如果你的数据库服务器和WEB服务器是两个独立的服务器,这样也会增加网络传输的负载。即使要查询数据表的所有字段,也尽量不要使用*通配符。善用内置的字段排除定义,可能会带来更多的便利。
5、使用 ENUM 代替
ENUM 类型非常快速且紧凑。其实它保存的是什么,只是在外面表现为一个字符串。这样,使用这个字段来制作一些选项列表就变得非常完美了。例如,性别、种族、部门、地位等这些字段的值是有限的和固定的。那么,你应该使用 ENUM 而不是。
6、尽量使用NOT NULL
除非您有非常具体的理由使用 NULL 值,否则您应该始终保持您的字段 NOT NULL。 NULL 实际上需要额外的空间,比较起来你的程序会更复杂。当然,这并不是说不能使用NULL。实际情况很复杂,还有一些情况需要用到NULL。
7、定长表会更快
如果表中所有字段都是“定长”,则整个表将被视为“”或“-”。例如,表中没有以下类型的字段:、TEXT、BLOB。只要您包含这些字段之一,该表就不是“固定长度的静态表”。这样引擎就会用另一种方法来处理。
定长表会提高性能,因为搜索会更快,因为这些定长很容易计算下一个数据的偏移量,所以读取自然会更快。而如果字段不是定长的,那么每次查找下一个时,程序都需要查找主键。
此外,固定长度的表更容易缓存和重建。但是唯一的副作用是定长字段会浪费一些空间,因为无论你使用与否,定长字段都要分配这么多空间。
8、使用“垂直分割”技术
你可以把你的桌子分成两张,一张是固定长度的,一张是可变长度的。垂直切分“垂直切分”是将数据库中的一张表按列转换成若干张表的方法,可以降低表的复杂度和字段数,从而达到优化的目的。例如:User表中有一个字段是家庭住址,该字段为可选字段,相比之下,操作数据库时除个人信息外,无需频繁读取或重写该字段。那么,为什么不把他放在另一张桌子上呢?这样会让你的表有更好的性能,想想看php网站部署到服务器,如果有很多时候,我只有用户表的用户名,用户名和密码。 、用户角色等会经常用到。较小的手表将始终具有良好的性能。另外需要注意的是,这些划分的字段组成的表,不要频繁的加入,否则性能会比不划分的时候差,而且会出现极值的数量。下降的程度。
9、您的询问
使用关键字让您知道如何处理您的 SQL 语句。这可以帮助您分析查询或表结构的性能瓶颈。查询结果还会告诉你你的索引主键是怎么用的,你的数据表是怎么搜索排序的……等等。对于比较复杂的语句,尤其是涉及多表的语句,通常我们可以在前面加上关键字。你可以用它来做到这一点。
五、前端优化
优化后端和数据库后,接下来我们要做的就是优化你的前端页面和输出页面的资源文件,包括图片、JS和样式文件的优化。建议使用以下网页性能测试工具进行检测分析,并给出相关优化建议:
开发的工具
开发人员可以使用它来评估其网页的性能并获得有关如何提高性能的建议。
它可以分析网站的页面,告诉您如何根据一定的规则进行优化,以提高网站的性能。