PHP性能优化

  • 内容
  • 评论
  • 相关

1.代码优化,两种常见“代码优化”方法。

一种是从代码质量上提高,一种是通过优化引擎来对网站代码进行优化。

1.1代码质量上,尽量避免代码冗余。

(1)不在循环中对数据库进行select操作。

(2)在程序开头文件包含代码中尽量使用require_once()或require() ,在流程控制区段的文件包含使用include_once()或include(),包含文件时要使用完整路径,解析操作系统路径所需时间就会变少。

(3)在执行for循环之前要事先确定最大循环数,不要每循环一次都计算最大值。

(4)随时注销那些不使用的变量,尤其是大数组,以便释放内存。

(5)使用分支语句(switch,case)好过使用多个if,elseif语句。

(6)用单引号来代替多引号包含字符串执行效率更快一些,因为单引号不需要解析变量。

(7)避免使用select * from mytable这样的句子 。

1.2去掉多余的代码注释

使用Zend Optimizer引擎来在不去掉多余注释的前提下达到提升运行速度的目的。

装这个引擎比较简单,下载对应平台的版本以后,解开压缩文件,然后在 php.ini 文件里面加上下面两行,重新启动 Web 服务器,就搞定了。

zend_optimizer.optimization_level=15

zend_extension="/path/to/ZendOptimizer.so"

zend_loader.enable=Off

如果是 Win32 平台的应该是:

zend_optimizer.optimization_level=15

zend_extension_ts="C:\\path\\to\\ZendOptimizer.dll"

zend_loader.enable=Off

其实第三行是可选的。因为看起来把 zend_loader 关掉能提高一点速度,因此值得把这第三行放到 php.ini 。需要注意的是,关掉的前提条件是你没有在使用 Zend 加密程序。

2.使用缓存技术

(1)内存缓存 使用得最普遍的是memcached这种系统把数据库数据放在一个很大的内存池里,在动态应用中减少数据库负载,提升访问速度。

(2)静态缓存 静态缓存是指页面静态化,直接生成HTML或XML等文本文件,有更新的时候重生成一次,适合于不太变化的页面。

3. Web 内容压缩

几乎所有的浏览器都支持Gzip的压缩方式,gzip可以降低80%的输出,付出的代价是大概增加了10%的cpu计算量。但是赚到的是不仅占用的带宽减少了,而且你的页面加载会变得很快,优化了你的PHP站点性能。

你可以在PHP.ini中开启它

zlib.output_compression = On

zlib.output_compression_level = (level)(level可能是1-9之间的数字,你可以设置不同的数字使得他适合你的站点。)

如果你使用apache,你也可以激活mod_gzip模块,他是高度可定制的。

4.数据库优化

4.1数据库设计

(1)选择合适的字段类型和字符长度

(2)适当建立索引

(3)文件、图片等大文件用文件系统存储,不用数据库

(4)宁可集中批量操作,避免频繁读写

4.2 SQL语句优化

(1)读写分离 如果数据库压力很大,一台机器支撑不了,那么可以用mysql复制实现多台机器同步,将数据库的压力分散。

(2)比如尽量不再运算符的左侧使用函数;使用事务来完成需要一系列sql语句才能完成的操作;保持sql语句中进行运算的两个字段类型一直;等等……

4.3 mysql缓存

开启QueryCache缓存,当查询接收到一个和之前同样的查询, 服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询