2010-03-10 61 views
1

我們有一個表,18GB的MySQL的其中有一欄「html_view」存儲HTML源數據,這是我們都顯示在頁面上,但現在它佔用太多的時間,從「html_view」一欄,其中製作獲取的HTML數據頁面加載緩慢。從數據庫讀取HTML數據很慢?需要更好的方法?

我們希望有一個方法可以簡化我們現有的結構,從數據庫或任何其他方式更快地加載HTML數據。我們正計劃

一個想法是HTML數據存儲在.txt文件和數據庫,我們將只存儲txt文件的路徑,並通過讀取文件讀取從特定文件中的數據。但是我們擔心它會在我們的服務器上進行廣泛的讀寫操作,並可能會降低服務器的速度。

有沒有更好的方法,讓這種情況更快?

+0

您正在使用哪個應用程序/ Web服務器? 我想你應該研究這些組件的緩存功能,以便從內存中獲取數據的可能性更大。 – weismat 2010-03-10 09:48:36

+0

我們使用「Apache/PHP/MYSQL」作爲網絡平臺嗎?有什麼我們可以做的,請分享任何例子或文章。謝謝 – Prashant 2010-03-10 09:57:20

回答

2

首先,爲什麼要在數據庫中存儲HTML?爲什麼不按需提供?

對於大的文本表格,你可以壓縮文本存儲在一個字節數組,或壓縮並以base64爲純文本編碼。

當你有一個大文本列的數組時,表中還有多少列?如果數量不是很多,可以對錶格進行分區並創建一個雙列鍵值存儲。這應該比從磁盤讀取文件更快更簡單。

+0

我們以前的結構是基於將數據庫存儲在數據庫中,所以不可能很早就改變它,所以我們打算做一些少的改變,現在可以改善性能。在「以字節數組形式存儲壓縮文本」或「以純文本格式壓縮並以base64編碼」的情況下,哪個更快,如何實現,請分享任何PHP示例? – Prashant 2010-03-10 09:56:04

+1

我不知道PHP,但這可能有所幫助:http://php.net/manual/en/ref.zip.php。字節數組將比base64更簡單,更小,更快。 – 2010-03-10 09:58:32

1

看看Apache Caching guide
它解釋了磁盤和內存緩存 - 如果內容是靜態的(如數據庫表所示),那麼應該使用Apaches功能,而不是編寫自己的較慢機制,因爲在頂部添加了多個圖層。
通常的措施,而不是估計仍然適用,雖然;-)。