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缓存,当查询接收到一个和之前同样的查询, 服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询