大型项目优化的介绍

大型项目的优化介绍

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

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

但是你要知道对于一个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。

你可能感兴趣的:(大型项目优化的介绍)