當前位置:才華齋>計算機>php語言>

關於php快取技術的總結

php語言 閱讀(3.2W)

導語:PHP快取包括PHP編譯快取和PHP資料快取兩種。下面就由小編為大家介紹一下關於php快取技術的總結,歡迎大家閱讀!

關於php快取技術的總結

PHP是一種解釋型語言,屬於邊編譯邊執行的那種。這種執行模式的優點是程式修改很方便,但是執行效率卻很低下。PHP編譯快取針對這種情況做改進處理,使得PHP語言只要執行一次,就可以把程式的編譯結果快取起來。

PHP快取包括PHP編譯快取和PHP資料快取兩種。PHP是一種解釋型語言,屬於邊編譯邊執行的那種。這種執行模式的優點是程式修改很方便,但是執行效率卻很低下。

PHP編譯快取針對這種情況做改進處理,使得PHP語言只要執行一次,就可以把程式的編譯結果快取起來。這樣,接下來的每次執行(程式碼沒有改變的情況下)都不需要再次編譯了,直接把之前的編譯結果拿來使用,比如thinkPHP裡面runtime想下的cache檔案就是屬於這種。

第一次開啟頁面會生成php檔案,之後開啟頁面,會發現檔案的修改時間沒有變,即使用了之前的編譯結果,不過當更改了程式碼之後,這部分php編譯檔案還是會重新生成,這大大提高PHP執行速度。PHP資料快取運用於PHP實際開發之中針對資料處理進行快取,主要兩大方向為:針對資料庫資料進行快取和針對PHP模板資料進行快取。

  PHP編譯快取

PHP是一種解釋型語言,在PHP語言執行程式碼的時候,需要下面兩步: 1、編譯過程。PHP讀取檔案,並編譯該檔案,然後生成能夠在Zend Engine虛擬機器上執行的中間碼。 2、執行過程。PHP直接執行中間碼。 以下兩種情況,會導致PHP執行程式程式碼效率低下: 1、即使PHP程式碼檔案沒有發生改變,也會被PHP重新編譯。 2、如有引用檔案,PHP也要花費時間重新編譯這些被引用的檔案。 因此,需要PHP編譯快取工具對PHP程式的編譯結果做快取處理。這樣,PHP程式只要編譯一次,就不要重新再做無意義的編譯了。

  PHP資料快取

PHP的資料快取包括針對資料庫資料進行快取(動態快取)和針對PHP模板資料進行快取(模板層面的靜態快取)。針對資料庫資料進行快取的工具有memcache等。針對PHP模板資料進行快取的工具主要有smarty等。

1、資料庫資料快取技術: 資料快取:這裡所說的資料快取是指資料庫查詢PHP快取機制,每次訪問頁面的時候,都會先檢測相應的'快取資料是否存在,如果不存在,就連線資料庫,得到資料,並把查詢結果序列化後儲存到檔案中,以後同樣的查詢結果就直接從快取表或檔案中獲得。 例如使用memcache,每次先在memcache裡面進行查詢,如果發現相應的key值則直接使用,如果沒有則從資料庫裡面調取,同時更新到memcache裡面。

2、頁面快取: 每次訪問頁面的時候,都會先檢測相應的快取頁面檔案是否存在,如果不存在,就重新走控制器,連線資料庫,得到資料,顯示頁面並同時生成新的快取頁面檔案,這樣下次訪問的時候頁面檔案就就可以直接給予顯示,這種情況下就可以不走控制器。(模板引擎和網上常見的一些PHP快取機制類通常有此功能,例如smarty模板、thinkphp框架)