2012-12-26 23 views
0

我正在製作一個CMS,一旦用戶搜索到使用MySQL生成緩存文件(CSV)的內容,之後將包含相同的CSV並由PHP提供相同的CSV搜索。閱讀CSV文件或進行MySQL查詢

現在我想讓用戶使用jQuery過濾來自同一緩存/靜態文件的數據。

我有

  1. 兩種選擇做一個DB查詢基於用戶的過濾器參數來生成結果
  2. 閱讀緩存/靜態的(這是CSV格式),並基於用戶的結果參數僅使用PHP。

我的數據庫和CSV文件都很小,在MySQL數據庫中約爲2000行,在CSV文件中約爲500行。 CSV文件的平均長度大約爲50行。將會有幾個(比如約100個)用於不同搜索的CSV文件。

哪種技術更快更高效?我在共享主機上。

搜索結果類似於電子商務網站上的產品信息。

+0

2000行?只需將它們全部交給客戶端,並讓javascript對其進行排序。 – goat

+0

2000個產品在一個頁面上?它會使無限滾動。 – Anuj

+0

我沒有說*顯示* 2000的結果。只要給他們的JavaScript和讓它過濾/分頁。你自己說,一些結果將有500條記錄,2000年甚至不超過500的數量級。2000年的記錄是沒有什麼(我完成30k - 你會驚訝它的工作效果)。顯然把它作爲json而不是csv給予客戶端。 – goat

回答

0

共享主機上下文中的MySQL服務器大部分時間都是可笑的重載,並且可能非常緩慢/無響應。

如果您想要解決問題,可以讓php腳本從數據表中爲當天的第一位用戶創建一個CSV文件,然後在一天的其餘時間內讀取CSV文件。

0

由於您位於共享主機上,因此總數2K不是問題,但硬盤的IO是。

把數據庫搜索結果放到memeory中,比如mysql memeory引擎表, 讓redis用TTL管理緩存比較好。