代码之家  ›  专栏  ›  技术社区  ›  Sune Rasmussen

数据库总是Web数据存储中的解决方案吗?

  •  6
  • Sune Rasmussen  · 技术社区  · 15 年前

    我对数据库没有任何经验,但我打算学习它并将其用于我计划的一个Web项目。

    尽管如此,我从我的一个朋友那里得到了建议,数据库的使用应该比我计划的要广泛得多。他相信将几乎所有的数据都保存在数据库中,在那里我发现数据库对于静态文件中的用户数据(只是很小的数据块)和页面内容数据等(不仅仅是很小的数据块)是最方便的,而不需要任何知识来建立这种假设。

    • 更好的解决方案是什么?数据库中的最少数据,还是尽我所能找到有效地存储在数据库中的方法?
    • 静态文件和数据库的使用是否存在性能差异?
    • 最佳解决方案是否取决于一般站点流量?

    我打算结合使用php和mysql。

    7 回复  |  直到 12 年前
        1
  •  4
  •   BalusC    15 年前

    如果你想 搜索 特定的数据基于几个参数,那么您真的需要使用一个数据库。SQL语言为您提供了 WHERE clause 正是为了这个。此外,无论何时创建和更新数据,数据库都是最佳选择,因为它提供了约束以确保 唯一性 一定程度上的数据。阿尔索 关系 数据之间最好由数据库管理(使用外键等)。

    例如,用户配置文件最好存储在数据库中。此外,用户控制的输入必须存储在数据库中。另一方面,服务器端的include/template文件最好作为普通文件存储在服务器的本地磁盘文件系统中,因为不需要在其中进行搜索。你可以 最后 如果您想用更多(元)信息(例如菜单/子菜单)将文件名“链接”到数据库中。这同样适用于二进制文件(图像、下载等),除非您希望(非常)高度的可移植性,否则您不希望将它们保存在数据库中。

        2
  •  3
  •   cletus    15 年前

    数据库不是 持久的 数据存储,它们只是最常见的。

    有些文档/博客引擎根本不使用数据库。创建、更改或评论静态HTML文件时,将创建或修改页面。例如, Movable Type .

    同样,您也可以拥有纯内存存储系统,如果系统关闭,则内存中的数据只需重新构建即可。或者内存内容被转储然后恢复,不涉及数据库。这通常在具有极高吞吐量或需要极低(微秒级)延迟的系统中完成。

    你的问题不能真正得到回答,因为你所问的每件事的答案都是“视情况而定”,无论你做什么,你都可能使它起作用。

    我会这样说:在你真的遇到问题之前,不要太在意表现。您将遇到的大多数性能问题可能归结为数据库中的索引和主键。

    PHP和MySQL是一个不错的选择。

        3
  •  2
  •   Chuck Vose    15 年前

    数据库是保存严格数据的正确地方。平面文件不能像数据库中的数据那样以几乎相同的速度进行索引。另一方面,设置数据库需要更多的学习收入。

    像照片这样的二进制数据在数据库中不是很好。

        4
  •  0
  •   Pindatjuh    15 年前
    • 我会说:数据库中的所有内容。数据库针对这类事情进行了优化。大多数博客软件也使用数据库作为内容,这是安全的。编辑:哦,二进制文件确实比文件好。但是MySQL也可以安全地处理它们。如果您有一张照片,可以将其存储在数据库中(因为它更容易维护),但是如果您托管10000张照片:使用文件,并保留数据库中文件的引用(它们的位置等)。
    • 当然:数据库也是经过优化的。在引擎盖下,数据库使用文件:但是你不必再关心这个了。
    • 对于一般的站点流量来说,mysql数据库是绝对可以的。

    PHP和MySQL是一个不错的选择。

        5
  •  0
  •   sibidiba    15 年前

    另外,如果数据操作需要事务处理,那么数据库几乎总是唯一好的解决方案。

        6
  •  0
  •   Trez    15 年前

    MySQL是具有数据完整性的常用数据库之一。如果您计划存储大量数据,那么最好使用MySQL。在使用数据库时也应该考虑安全性。MySQL非常安全且易于使用,您还可以在网上搜索更好的文档和示例。

        7
  •  0
  •   David Gruzman    15 年前

    在我看来-你需要一个理由不在数据库中存储数据。|但是我认为你也应该考虑像谷歌数据存储这样的非关系数据库 http://code.google.com/appengine/docs/python/datastore/ 或其他类似的事情。