【问题标题】:How to host a Django website inexpensively? [closed]如何便宜地托管一个 Django 网站? [关闭]
【发布时间】:2018-10-23 16:39:08
【问题描述】:

我最近一直在开发一个错误跟踪软件,我的客户希望该网站尽快启动并运行。我正在为数据库使用内置的 SQLite。

我想不通的是,我如何尽可能便宜地托管它,我可以使用 SQLite 作为生产数据库。

这是一个运行在 Django 管理部分的非常小的网站,根据客户告诉我的内容,用户数量将非常少。我读过,如果数据库要庞大,我应该选择 MySQL 或 MongoDB 或任何其他数据库系统,但正如我之前提到的,用户不必很多。

AWS 是一个不错的选择吗?如果是,我要花多少钱才能启动并运行它。

【问题讨论】:

  • sqlite 很差!从 db 获取数据的速度有点令人讨厌。 pythonanywhere 提供了一些便宜的选择,AWS 也是不错的选择。
  • @Lemayzeur 我们说话有多慢?因为如果它像 2-3 秒,没关系。因为应用程序所做的只是创建、更新和删除大约 7-10 个表,并且每次上传大约 1-3 个图像。
  • 对于这么小的动作和数据,SQLite可以做到。但我一直认为SQLite 是用于开发的数据库,这是我的选择
  • 关于产品推荐、服务和数据库的问题不在 SO 上。
  • Move to mongoDB... django-admin-boostrapped... | Pythonanywhere is cheaper 到目前为止,但基于质量和性能,我建议 AWS让我们停止这个对话吧,像@KlausD 这样的东西是题外话。说

标签: python django sqlite web hosting


【解决方案1】:

普遍接受的建议,即 SQLite 速度慢,是错误的。来自the website

SQLite 非常适合作为大多数中低流量网站(即大多数网站)的数据库引擎。 SQLite 可以处理的网络流量取决于网站使用其数据库的程度。一般来说,任何每天点击量少于 100K 的网站都可以使用 SQLite。 10 万次点击/天的数字是保守估计,而不是硬性上限。 SQLite 已被证明可以处理 10 倍的流量。

确保文件位于良好的 SSD 驱动器上,从速度的角度来看,您会没事的。

但是,并发性可能是个问题。考虑以下建议(来自同一页面):

如果有许多客户端程序通过网络向同一个数据库发送 SQL,则使用客户端/服务器数据库引擎而不是 SQLite。 SQLite 将在网络文件系统上工作,但由于与大多数网络文件系统相关的延迟,性能不会很好。此外,文件锁定逻辑在许多网络文件系统实现中(在 Unix 和 Windows 上)都有缺陷。如果文件锁定不能正常工作,两个或多个客户端可能会尝试同时修改同一数据库的同一部分,从而导致损坏。因为这个问题是由底层文件系统实现中的错误引起的,所以 SQLite 无法阻止它。

如果您确实使用 SQLite,请确保您有一个每日(或每小时)备份系统,以便您的客户端可以在需要时回滚到早期版本。考虑到上述建议,最好将文件存储在本地而不是通过网络访问。

请记住,所有数据库系统都可能遭受损坏,并且都需要备份策略。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 2012-07-26
    • 2013-04-21
    • 2011-10-23
    相关资源
    最近更新 更多