2013-06-29 42 views
0

我有一個python腳本生成數據(每小時),稍後由PHP網頁讀取。我應該在哪裏存儲數據 - 存儲在數據庫,文件還是其他地方?會有一些接近100-200KB /用戶的數據。這將是一個解決方案?數據不是純文本,這意味着我將不得不使用json或xml來存儲它。緩存每小時更新一次 - 在哪裏存儲?

示例數據:(XML很容易閱讀,不要怪我!)

<item uid="1"> 
<title>Malala's voice stronger, not silenced</title> 
<rating>3</rating> 
<date>Wednesday, May 8, 2013 2:03 PM</date> 
<text>The attack was meant to silence the outspoken teenager who dared to defy the Taliban's ban against girls in school. Instead, it only made Malala's voice more powerful. After a school year that started with a shooting, Malala now eyes a summer of speaking at the U.N., telling her story in a new book and amplifying the issue of girls education. </text> 
</item> 
+0

你能發佈一段你的數據嗎?所以我們知道你想存儲什麼樣的數據?在某些情況下,一個文件可能是最好的,但在大多數情況下,一個數據庫最好。也許是一個組合?所以請給我們一些見解:)(如果它是一個非常長的文本,用'(...)'縮短並告訴我們該列包含多少kb)。 – Jelmer

+0

我會在一秒內編輯它。 – user2534511

+0

注意:你說你可以使用json或xml。在考慮filestorage時,也要考慮序列化數據。我已經注意到了比解碼json更快的反序列化。但編碼JSON比序列化更快。我的觀點是:你需要什麼速度?寫作還是閱讀? – Jelmer

回答

0

一般查詢數據庫是昂貴的,如果你最終擴展您的應用程序,你會得到問題每次你需要時間讀取您還需要查詢數據庫的數據。這將導致讀取數據失敗。

有一種技術可以避免這種情況。它被稱爲memcache。一個很好的memcache介紹可以在Udacity course它的第六課找到。還有another post at stackoverflow,它解釋了他們如何用Python和php語言成功共享memcache。

+0

memcache也是我的第一個想法,不幸的是它不是一個選項:( – user2534511

+0

爲什麼它不是一個選項? – Jelmer

+0

是的,爲什麼它不是@ user2534511的選項? – Jonathan

1

我認爲這取決於您的Web應用程序的規模。如果它會相當小,並且不會隨着時間的推移而增長,那麼文件系統會很好。這是一個很好的選擇,因爲它非常簡單。非常容易讀/寫文件。

如果你想要更嚴重的事情,你可以去一個分佈式緩存,並啓動它只有一個節點在本地運行。

很多的選擇有:

大量的普遍支持JSON數據庫這幾天:

我肯定會使用JSON去,因爲你的序列化數據格式。