我最近一直在研究Bug跟踪软件,我的客户希望网站尽快启动并运行。我使用内置的SQLite作为数据库。
我能弄清楚的是,如何尽可能便宜地托管它,我可以使用SQLite作为生产数据库。
这是一个在Django管理部分运行的非常小的网站,根据客户告诉我的情况,用户数量非常少。我已经读过,如果数据库变得庞大,我应该选择MySQL或MongoDB或任何其他数据库系统,但正如我之前提到的,没有必要成为很多用户
AWS是一个不错的选择吗?如果是的话,启动和运行它需要花多少钱。
答案 0 :(得分:1)
普遍接受的建议,即SQLite很慢,是错误的。来自the website:
SQLite非常适合作为大多数中低流量网站(也就是大多数网站)的数据库引擎。 SQLite可以处理的Web流量取决于网站使用其数据库的程度。一般来说,每天点击次数少于100K的网站应该可以正常使用SQLite。 100K点击/天的数字是一个保守估计,而不是一个硬上限。 SQLite已被证明可以使用10倍的流量。
确保文件位于一个好的SSD驱动器上,从速度的角度来看你会没事的。
然而,并发可能是一个问题。考虑这个建议(来自同一页面):
如果有许多客户端程序通过网络将SQL发送到同一数据库,则使用客户端/服务器数据库引擎而不是SQLite。 SQLite将在网络文件系统上运行,但由于与大多数网络文件系统相关的延迟,性能不会很好。此外,文件锁定逻辑在许多网络文件系统实现中都是错误的(在Unix和Windows上)。如果文件锁定无法正常工作,则两个或多个客户端可能会尝试同时修改同一数据库的同一部分,从而导致损坏。因为这个问题是由底层文件系统实现中的错误引起的,所以SQLite无法阻止它。
如果您确实使用SQLite,那么请确保您拥有每日(或每小时)备份系统,以便您的客户端可以根据需要回滚到早期版本。考虑到上述建议,最好在本地存储文件,而不是通过网络访问它。
请记住,所有数据库系统都可能遭受损坏,并且所有这些系统都需要备份策略。