程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> PHP站點性能優化方法總結

PHP站點性能優化方法總結

編輯:PHP基礎知識
 

一、代碼優化,我自己認為“代碼優化”分兩種,一種是從代碼質量上提高,一種是通過優化引擎來對網站代碼進行優化,

1、代碼質量上,盡量避免代碼冗余,

(1)不在循環中對數據庫進行select操作、
(2)在程序開頭文件包含代碼中盡量使用require_once()或require() ,在流程控制區段的文件包含使用include_once()或include(),包含文件時要使用完整路徑,解析操作系統路徑所需時間就會變少
(3)在執行for循環之前要事先確定最大循環數,不要每循環一次都計算最大值
(4)隨時注銷那些不使用的變量,尤其是大數組,以便釋放內存
(5)使用分支語句(switch,case)好過使用多個if,elseif語句
(6)用單引號來代替多引號包含字符串執行效率更快一些,因為單引號不需要解析變量
(7)避免使用select * from mytable這樣的句子

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=”\\path\\to\\ZendOptimizer.dll”
zend_loader.enable=Off
其實第三行是可選的。因為看起來把 zend_loader 關掉能提高一點速度,因此值得把這第三行放到 php.ini 。需要注意的是,關掉的前提條件是你沒有在使用 Zend 加密程序。

二、使用緩存技術,

(1)內存緩存 使用得最普遍的是memcached這種系統把數據庫數據放在一個很大的內存池裡,在動態應用中減少數據庫負載,提升訪問速度。

(2)靜態緩存 靜態緩存是指頁面靜態化,直接生成HTML或XML等文本文件,有更新的時候重生成一次,適合於不太變化的頁面。

三、Web 內容壓縮

幾乎所有的浏覽器都支持Gzip的壓縮方式,gzip可以降低80%的輸出,付出的代價是大概增加了10%的cpu計算量。但是賺到的是不僅占用的帶寬減少了,而且你的頁面加載會變得很快,優化了你的PHP站點性能。
你可以在PHP.ini中開啟它
zlib.output_compression = On
zlib.output_compression_level = (level)(level可能是1-9之間的數字,你可以設置不同的數字使得他適合你的站點。)
如果你使用apache,你也可以激活mod_gzip模塊,他是高度可定制的。

四、數據庫優化

1、數據庫設計,

(1)選擇合適的字段類型和字符長度

(2)適當建立索引

(3)文件、圖片等大文件用文件系統存儲,不用數據庫

(4)寧可集中批量操作,避免頻繁讀寫

2、SQL語句優化

(1)讀寫分離 如果數據庫壓力很大,一台機器支撐不了,那麼可以用mysql復制實現多台機器同步,將數據庫的壓力分散。

(2)比如盡量不再運算符的左側使用函數;使用事務來完成需要一系列sql語句才能完成的操作;保持sql語句中進行運算的兩個字段類型一直;等等。。。。

3、mysql緩存 開啟QueryCache緩存,當查詢接收到一個和之前同樣的查詢, 服務器將會從查詢緩存種檢索結果,而不是再次分析和執行上次的查詢

以上為我們對php站點性能優化的總結,如果有什麼錯誤的地方希望大家指正。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved