優化網站程式效率的作法很多,包括資料庫的充份正規化、快取技術、多層次主從架構等等,所有的方法為的都是減少不必要的運算和用最快的方式取得資料。

本文要談的是 memcache 這種作法,它是在主機上切出一塊記憶體作為公共儲存的空間。透過函示庫可以讓 php 這類的網頁程式將數值寫入記憶體備用。

那麼,實際的效能如何呢?

我以一個約二萬筆的資料表來作了一點試驗,得到以下數據:

開始測試 : 2010-03-27 22:24:57 0.14270200
鍵值查詢 : 2010-03-27 22:24:57 0.14330700   0.00060
欄位查詢 : 2010-03-27 22:24:57 0.16809800   0.02479 👿
記憶快取 : 2010-03-27 22:24:57 0.16884600   0.00075
記憶鍵值 : 2010-03-27 22:24:57 0.16886300   0.00017 😛

由以上的數據可以看出,以資料表的鍵值向 MySQL 送出的查詢非常快速,但用一般的欄位去查詢就非常緩慢,差了將近 41 倍,而透過一般欄位值 memcache 取得相同的資料的時間則和使用鍵值查詢的速度相仿,但使用鍵值直接向 memcache 取得資料則比 MySQL 查詢省了 2/3 的時間。

由此可知,在講究執行效率的平台上,千萬要避免對 MySQL 送出一般欄位的查詢;對於能直接或間接以鍵值取得的資料,則可以考慮將它預存在 memcache 中備查。如此就能讓程式效率發揮到最大!

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: -1 (from 1 vote)
利用 memcache 來加速網頁程式運作的實測心得, 10.0 out of 10 based on 1 rating

Post to Twitter Post to Plurk Post to Digg Post to Facebook

相關訊息