美文网首页
大型项目优化的介绍

大型项目优化的介绍

作者: 宠辱不惊丶岁月静好 | 来源:发表于2018-07-18 23:13 被阅读0次

大型项目的优化介绍

大型项目优化的成果,是非常显著的,小型项目优化的成果,并不是那么明显的。

大型项目:访问人数多!功能非常的复杂!

但是你要知道对于一个PHP网站来说,大多数时候,都是流量(访问人数),这个量大了,才是大型网站!

因为PHP很多时候,都是做网站的!其它的事,它不来!

IP:服务器能够统计到的IP地址的数量

UV:客户端访问服务端的数量

PV:访问服务器页面的数据。

网站统计:http://alexa.chinaz.com/

网站流量统计,有很多网站。但是还有使用百度比较多。

1、代码优化

网站优化:写代码方式,尽量保证写===的时候,不要写==(隐式转化的过程)。代码要模块化。

推荐看看:《人月神话》和《代码大全2》

比如说在对数据进行查询的时候,可能会出现下面的写法:

//错误写法
//id的数据有200个
$id_arr = [];

//通过id来查询其它字段的值
foreach($id_arr as $id)
{
    $sql = "SELECT * FROM `table_name` WHERE `id` = $id";
    mysqli_query($db, $sql);
}

通过上面的代码可以发现,id的数据有200个,所以如果查询数据就得查询200次,假如说你的服务器不是很好,那么这200次很有可能会让你的MySQL崩了,因为你要一个数据就连接一次数据库,要一个数据再连一次数据库,这样会让MySQL服务器扛不住的,所以说这种写法是有问题的!

下面是优化后的代码:

//正确写法
//把id转成字符串,一次性取出来:1,2,3,。。。
$id_str = implode(', ', $id_arr);
$sql = "SELECT * FROM `table_name` WHERE `id` IN ($id_str)";
mysqli_query($db, $sql);

当一个页面使用数据的时候,尽量一次性把数据都取出来,然后在PHP页面进行组装。

2、数据库优化

一般数据库会是网站出现瓶颈的地方。

数据库的数据都是存储在硬盘里面的,每一次的查询每一次的写入都要操作我们的硬盘!

操作硬盘就要执行写操作与读操作:IO资源!

IO资源,就是我们硬盘一次性读取数据的能力!

计算机是怎么去读取数据的?

读取数据的能力,是被限制的,即使是现在的固态的硬盘,也是非常的慢的。

当你使用数据库大量的读写操作的时候,都会去操作硬盘,这个硬盘读取写入的速度已经最大化了,不能再快了。这个时候,你后续的操作,就会等待,等着前面的写入或者是读取操作完成。

我们说的IO瓶颈就是指的我们的硬盘读写速度跟不上我们需要数据的速度!!

操作数据库的时候,一定要注意:在大量数据操作的时候,一定要在本地测试通过之后,才能在服务器上面操作。不要盲目的操作!

数据库里面没有硬删除,都是软删除:就是不能删除数据,使用一个字段标识数据。1就是存在;0就是删除。使用update更新就可以了!

3、静态化技术

静态化是把我们动态的资源里面,直接保存成html页面,我们去访问的时候,直接就是访问的html页面,这个页面是静态资源,这个时候,我们直接使用web服务器拿到这个静态,直接返回给我们的客户端,客户端去渲染这个资源!

静态化之后,我们的数据已经生成了,不在是PHP文件内容,就少了编译与执行的步骤。所以就变快了。

4、缓存优化

当我们把上面所有的数据,都保存在我们的内存中的时候,就可以提升我们的速度。内存的读取速度,比硬盘的读取速度要快很多。

PHP虽然可以操作内存(shmop扩展:开启后可以操作内存),但是能够操作的内存特别的小,所以就要使用第三方工具来管理我们的越来越大的内存需求。比如Memcache,Redis。

相关文章

  • 大型项目优化的介绍

    大型项目的优化介绍 大型项目优化的成果,是非常显著的,小型项目优化的成果,并不是那么明显的。大型项目:访问人数多!...

  • 无标题文章

    目录 笔记大型项目优化概述大型项目优化的方向代码优化数据库优化缓存优化架构优化Memcache与MySQL比较语法...

  • 大型项目优化

    大型项目优化概述--PHP解析流程 优化方案 考虑PHP解析的的每一个过程1、客户端请求到web服务器的过程中可能...

  • 大型项目优化的方向

    大型项目优化的方向 **代码优化 ** ​ 开启opcode缓存,减少额外CPU和内存开销,加快代码运行速度 ...

  • 大型项目优化的方向

    代码优化 ①开启opcode缓存,减少额外CPU和内存开销,加快代码运行速度(见文档《Opcode缓存》)②重模型...

  • Vue 异步组件&路由懒加载

    异步组件 异步组件介绍 在开发大型项目的时候,我们会把大型项目根据组件分割为小块代码,然后异步加载代码块,这样可以...

  • PHP 性能优化

    PHP 性能优化在中大型项目当中是非常重要的一件事情。 PHP 性能优化分为代码级和配置级两个部分。 一、PHP ...

  • ruby on rails中如何使用Pundit进行权限管理

    一:pundit介绍 有名的权限管理gem:1.pundit:流行的权限管理(推荐,pundit更加适合大型项目,...

  • vuex的基础用法

    前言 vuex在vuejs构建大型项目的时候,是必不可少的。网上对他的介绍很多,官网介绍的也很详细。但是自己还是想...

  • PostgreSQL 源码解读(29)- 查询语句#14(查询优

    本节简单介绍了PG查询逻辑优化中的子查询(subQuery)上拉优化,包括查询优化中子查询的基本概念,同时介绍了主...

网友评论

      本文标题:大型项目优化的介绍

      本文链接:https://www.haomeiwen.com/subject/nxxzpftx.html