2010-11-25 55 views
1

在我正在開發我需要從varoius來源的信息(mysql數據庫,Facebook和未來其他社交網絡)應用的大陣列,並加入所有相同的結構,在PHP中處理

我我現在正在做的是從我的數據庫和facebook的數組中獲取數據,然後使用array_merge來加入這兩個數組,然後迭代該數組,並創建一個用我想要的字段格式化的自定義數組。

strucutre本身正在工作,但我擔心隨着越來越多的帖子進入我的應用程序和相關的Facebook頁面將使我的應用程序真的很慢。 我只在當時顯示10條記錄(使用array_slice),但在此之前我總是需要獲取所有數據,並且因爲它來自不同格式的不同來源,我沒有看到任何方式來限制返回的數據量從每個電話。

任何提示?

+0

有多大?你有沒有分析你的應用程序,看看是否真的存在性能問題?另外,爲什麼你必須在創建最終結構之前合併數組。爲什麼你不能只是在獲取它們的時候將各種數據源推送到目標結構中?沒有足夠的關於您的設置的信息來提供除了隨機tipps之外的任何內容。 – Gordon 2010-11-25 12:02:05

回答

1

我會做一些單元測試和全局測試,試圖找出增長的數組是否確實是一個問題。

如果他們是,我想我會分兩個部分的應用程序,一個獲取數據和解析它兩個正確的格式和另一個使用數據並顯示10條記錄給用戶,你可以做一個背景應用程序,例如用於數據處理的Python以及用於用戶可視化的PHP前端。

HTH方面。

0

請勿將所有數據加載到內存中。使用mySQL的LIMIT和數據庫包裝器的fetch_row方法來減少需要加載到腳本內存中的記錄數量。

2

每次調用數據是否具體?您可以對數據進行預處理,例如在第一次請求時獲取它並將其存儲在臨時表中,這樣下一個請求可以從表中加載。您可以定義刷新率,並在刷新率時間過後進行完全重新加載。此外,如果您有權訪問諸如cron作業之類的內容,那麼他​​們可能就是您正在尋找的解決方案。