2011-07-07 55 views
2

我正在開發一個使用python/cherrypy的可移植web應用程序,我希望它能夠簡單地解壓到一個文件夾,而不必安裝任何東西。可能阻止這種情況的一件事是我的數據庫後端。大多數類似的設置似乎使用SQLite,但我有一些擔心,因爲我可能有多達30人同時連接到我的服務器,並擔心寫入排他鎖會產生巨大影響。便攜式/獨立Web應用程序的潛在數據庫系統?

我的問題:

  1. 怎麼會不好用的SQLite處理多達30個連接嘗試讀取,少數那些試圖寫的,在同一時間的鬥爭?嘗試從數據庫讀取數據的人可能會導致什麼樣的等待時間?
  2. 有沒有人有其他建議嗎?我想避免MySQL,因爲我對我的項目有一些商業願望,但如果有必要,我會沿着這條路線走下去。我可能會放棄完全的可移植性,並且需要PostgreSQL的安裝,然後再提交給MySQL ......
  3. 只要帶寬不是問題,讓單個桌面爲多個連接提供服務是否合理?

預先感謝您的幫助,並道歉,如果我問什麼明顯的,或已事先回答(我花了很多時間像樣的數目在這裏搜索上/網上並沒有看到任何明確的) 。 -repole


編輯:順便說一下,任何人一些有益的探討here誰以後就這個問題絆倒。

+0

根據不同的使用情況下,你爲什麼不想想也是NoSQL數據庫? – Cinquo

+0

便攜性如何「便攜」? –

+0

@Cinquo - 我對NoSQL數據庫有很多理解。我目前正在研究它們。對於我的數據庫的價值是非常依賴於關係的,我現在的設計在幾乎每個表中都有一個外鍵;從我早期閱讀NoSQL的內容來看,它可能不是一個理想的解決方案。 @Ignacio Vazquez-Abrams - 我希望有人能夠將他們的包含我的應用程序的文件夾複製並粘貼到另一臺計算機上,並像沒有任何變化一樣使用它。我見過很多能夠實現這一功能的網絡應用程序(SABnzbd,SickBeard,Subsonic等等)。 – repole

回答

2

有一些純Python數據庫在那裏,不知道他們是多麼好或穩定:

如果你是擔心發行許可證,然後檢查出st擁有Apache許可證。目前託管的頂級數據庫項目之一是CouchDB。我看到的主要問題是分發並不像簡單包含Python模塊那麼簡單。

不知道您的Web應用程序的體系結構是什麼樣的,但可以使用多個Sqlite數據庫來解決鎖定問題。

另一種選擇是Berkeley DB的:http://docs.python.org/library/bsddb.html

+0

正如我在上面的評論中提到的,我對NoSQL解決方案並不太熟悉。我一定會考慮CouchDB(和其他NoSQL解決方案)。不知道是否有多個SQLite數據庫可以工作,我想我可以爲每個用戶創建一個單獨的數據庫,每個單獨的文件之間會有一些偶爾的信息交換,但是我會比單個數據庫更有效率,我想。 – repole

+0

另一個基於非網絡的數據庫是Berkeley DB(它可以支持數千個同時訪問同一個數據庫的線程):http://en.wikipedia.org/wiki/Berkeley_DB – pokstad

+0

在答案中增加了一些純Python數據庫。如果性能不是問題(根據使用情況,30個用戶似乎不會這樣),那麼這些可能會實現。 – pokstad