【发布时间】:2011-09-30 20:35:48
【问题描述】:
我正在使用 python/cherrypy 开发一个可移植的网络应用程序,理想情况下,我希望能够简单地提取到一个文件夹,而不必安装任何东西。可能阻止这种情况的一件事是我的数据库后端。大多数类似的设置似乎都使用 SQLite,但我有一些担忧,因为我可能有多达 30 人同时连接到我的服务器,并且担心写排他锁会产生很大影响。
我的问题:
- SQLite 在同时处理多达 30 个尝试读取的连接和一些尝试写入的连接时会遇到多大的困难?对于尝试从数据库读取的人来说,插入可能会导致什么样的等待时间?
- 有人有其他建议吗?我想避免使用 MySQL,因为我对我的项目有一些商业愿望,但如果有必要,我会沿着这条路走。不过,我可能会放弃完全的可移植性并需要安装 PostgreSQL,然后再提交给 MySQL....
- 只要带宽不成问题,让一个桌面服务这么多连接是否合理?
提前感谢您的帮助,如果我问任何明显的问题或之前已经回答过的问题,我深表歉意(我已经在这里/在线搜索了相当多的时间,但没有看到任何确定的内容)。 -repole
编辑:顺便说一下,一些有用的讨论here 供以后偶然发现这个问题的人使用。
【问题讨论】:
-
根据用例,你为什么不考虑 NoSQL 数据库?
-
@Cinquo - 我对 NoSQL 数据库的了解几乎为零。我目前正在调查他们。值得我的数据库非常依赖关系,我目前的设计在几乎每个表中都有一个外键;从我早期使用 NoSQL 阅读的内容来看,它可能不是一个理想的解决方案。 @Ignacio Vazquez-Abrams - 我希望有人能够将包含我的应用程序的文件夹复制并粘贴到另一台计算机上,并像没有任何改变一样使用它。我见过许多能够做到这一点的网络应用程序(SABnzbd、SickBeard、Subsonic 等等)。
-
@Ignacio Vazquez-Abrams - 无论从何处运行应用程序,多个用户都需要能够连接到它。这方面的一个例子是 Subsonic(一个音乐/视频流网络应用程序),我目前正在将外部硬盘驱动器作为网络应用程序运行,并且可以由多个用户连接。 “需要”可能不是正确的词,但由于它增加了多功能性,我希望能够做到这一点。
标签: python database sqlite web-applications