PHP資料緩衝技術_php技巧

來源:互聯網
上載者:User
資料緩衝是web開發中常用的一種效能最佳化方法。目前主要檔案快取或者資料庫緩衝兩種形式,資料庫快取資料庫不是什麼不可能的事情,的確也是很好很重要的。我認為傳統資料庫主要是從業務層、模組設計等方面來考慮的,而快取資料庫主要是從實現層來設計的,主要是為了緩衝常用的多表查詢之類的。這裡主要將的是檔案快取,網上很多資料了,這裡我轉載了一些原理資料。
   Cache是“以空間換時間”策略的典型應用模式,是提高系統效能的一種重要方法。緩衝的使用在大訪問量的情況下能夠極大的減少對資料庫操作的次數,明顯降低系統負荷提高系統效能。相比頁面的緩衝,結果集是一種“未經處理資料”不包含格式資訊,資料量相對較小,而且可以再進行格式化,所以顯得相當靈活。由於PHP是“一邊編譯一邊執行”的指令碼語言,某種程度上也提供了一種相當方便的結果集緩衝使用方法——通過動態include相應的資料定義程式碼片段的方式使用緩衝。如果在“RamDisk”上建緩衝的話,效率應該還可以得到進一步的提升。以下是一小段範例程式碼,供參考。

<?
// load data with cache 

function load_data($id,$cache_lifetime) { 

// the return data 

$data = array(); 

// make cache filename 

$cache_filename = ‘cache_‘.$id.‘.php‘; 

// check cache file‘s last modify time 

$cache_filetime = filemtime($cache_filename); 

if (time() - $cache_filetime <= $cache_lifetime) { 

//** the cache is not expire 

include($cache_filename); 

} else { 

//** the cache is expired 

// load data from database 

// ... 

while ($dbo->nextRecord()) { 

// $data[] = ... 



// format the data as a php file 

$data_cache = "

while (list($key, $val) = each($data)) { 

$data_cache .= "$data[‘$key‘]=array(‘"; 

$data_cache .= "‘NAME‘=>"".qoute($val[‘NAME‘])."\"," 

$data_cache .= "‘VALUE‘=>\"".qoute($val[‘VALUE‘])."\"" 

$data_cache .= ";);\r\n"; 



$data_cache = "?>\r\n"; 

// save the data to the cache file 

if ($fd = fopen($cache_filename,‘w+‘)) { 

fputs($fd,$data_cache); 

fclose($fd); 





return $data; 



?> 


適用情況:
1.資料相對比較穩定,主要是讀取操作。
2.檔案操作要比資料庫操作快。
3.複雜資料訪問,大資料量訪問,密集資料訪問,系統資料庫負載極重。
4.Web/DB分離結構或者多Web單DB結構。

未經證實的問題:
1.並發訪問時對檔案的讀寫是否會引起鎖定問題。
2.涉及到的資料檔案太多時,效能如何。
擴充思路:
1.產生JavaScript資料定義代碼,在用戶端調用。
2.還未想到……  

望共同探討。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.