2012-10-02 67 views
0

我試圖確定是否從重負載下直接從mysql數據庫獲取結果比從緩存文件獲取結果更快或更慢。在任何情況下,這將是最快的。直接MySQL查詢或緩存文件 - 哪個更快?

我有兩套數據,我正在使用一個緩存文件。我正在使用PDO。

  1. 顯示返回類別列表的列表 - 類別字母,類別名稱和類別編號結果。我每頁拉400個類別。
  2. 視頻縮略圖,它返回 - 標題,網址,視圖,來源和持續時間。我每頁拉大約140拇指w /數據。

我將緩存文件設置爲序列化數組結果並保存到文件中。如果緩存的文件時間仍然有效,它將顯示緩存文件與數據庫的結果。

我想,以確定是否查詢數據庫比訪問緩存文件,顯示效果也比較好。我所做的測試似乎表明,從文件中獲取結果比數據庫快。但是,我不是任何一個領域的大師......所以我想看看是否有人能夠通過一些反饋來幫助我。

謝謝!

+0

緩存的整個要點是通過不必處理重複查詢來加快加載時間。 – Dutchie432

+0

即使是farster也只是構建一次輸出,並使用include包含到瀏覽器。這也是一種緩存技術。當然,這些文件可以定期更新。 –

回答

0

當然是緩存文件。這就是緩存數據的要點。

1

比基於文件的緩存更快可以是例如memcached或redis服務器!

+0

+ 1事實上,內存緩存是高速緩存存儲數據的最佳方式,例如非本地mySQL服務器 – Pandaiolo

0

TIAS

緩存的整點是要加快網站特別是對數據庫調用通常是一個網站最慢的部分。

但更重要的是,你可能已經運行在這個基準測試比打字這個問題,並等待響應更快。在你的開發盒上安裝xdebug並下載解析器,告訴你你在哪裏節省時間以及瓶頸在哪裏。

0

緩存到文件速度更快。你走對了!

如果您只使用一個Unix服務器,並有足夠的可用內存,也許是最簡單,最快速的方法是將序列數據文件存儲在內存中的/ tmp -filesystem。所以,如果可能的話忘記memcached。還要記住,如果你沒有足夠的耐心來實現緩存,那麼給mysql查詢緩存足夠的內存。自制緩存是最輕的,因此如果製作得當,速度最快。

根據您的數據,它可能是最好只刪除數據來代替改變使用期滿時間之前的緩存文件。如果文件存在,這樣你就知道數據是好的。

而且因爲你有興趣的速度......我使用基本的mysql-功能,而不是PDO或mysqli的獲得更多的權力。當然,光明而不是apache :)