网站SQL数据库存储的替代方案有哪些?

19

如果您的存储需求很小,那么使用SQL数据库就有点大材小用了。当我年轻无知时,我使用文本文件,并在需要访问它时使用flock()函数。这种方法不能扩展,但我仍然认为非数据库解决方案在Web 2.0中完全被忽略了。

是否有人不使用SQL数据库进行存储?有哪些替代方案?

16个回答

0

嗯,这是一个有点开放式的问题,OP提出了两个问题...关于SQL替代方案和非SQL。

总的来说,在“为什么SQL好”的类别中...它是一种成熟且强大的标准,提供引用完整性。Java JDBC完全支持它,像TOAD这样的工具也支持它,还有许多SQL实现,比如前面提到的SQL-Lite。

现在特定于“网站”并不特别说明任何事情。一个网站需要引用完整性吗?也许。如果网站的业务性质主要是非结构化内容,那么可以考虑任何类型的持久存储,从所谓的“无SQL”数据库(如AWS DynamoDB)到Mongo(虽然我不是粉丝)。

对于管理SQL存储的复杂性-与创建的每个持久性存储的列表相比,建议之一是AWS Aurora(RDS服务的一部分)。它是多区域活动-活动且完全符合MySQL的。基于JDBC / ODBC的驱动程序框架将开箱即用,并且它有效地提供“零管理”。


0
一个简单的答案是,您可以使用任何数据存储格式,从标准定义到数据库(通常涉及协议),甚至是定制文件格式。
在IT中,每个选择都有权衡,网站当然也不例外。在2000年代初,基于文件的论坛系统很受欢迎,因为它允许技术能力有限的任何人编辑页面和帖子。完全静态的网站很快变得难以管理,并且内容无法从站点用户界面的升级中受益;但是,如果编码正确,则可以将站点简单地移动到子目录或拆分到新设计中。 CMS和动态系统带来了自己的一套问题,即它们之间尚不存在广泛采用的数据存储标准;它们经常依赖第三方插件来提供设计样式之间的功能(尽管它们的文档倡导功能与形式的分离)。
在2016年,不使用标准存储机制(例如* SQL RDBMS)已经相当罕见;尽管像Jekyll(支持许多GitHub页面)这样的静态站点生成器和独立玩家(如October CMS)仍然为基于静态文件的存储提供服务。

我的个人偏好是使用支持SQL的关系型数据库管理系统,它为我提供了至少在供应商级别上标准化、熟悉且强大的语法,但与很多人不同的是,我并不认为这是唯一的选择,在大多数情况下,我会建议使用站点生成器将不必动态生成的部分保存到静态存储中,因为这是在网络上生存的最便宜的方式。

简而言之,这取决于你,SQL和关系型数据库备受欢迎。


0
在Perl中,我使用DBM或Storable来完成这些任务。当变量更新时,DBM会自动更新。

0

这取决于您存储的内容以及需要如何访问它。通常,SQL提供了出色的报告和手动管理能力。几乎所有东西都需要一种管理存储内容并对其进行报告的方式。


0

在 SQL 数据库下一级是 ISAM(索引顺序访问方法)- 基本上是表和索引,但没有 SQL 和表之间的显式关系。只要概念基础符合您的设计,它就会很好地扩展。我长期以来一直有效地使用 Codebase

如果您想处理类似 SQL 数据库类型的数据,则可以考虑使用 FileMaker


-4
如果我是你,我会看一下 XML。在左侧查看 w3schools 的 XML 教程部分。有很多可能性,而不需要使用 SQL 数据库。

99%的时间在语言中都有比XML更好的替代方案... 对于PHP,我会使用var_export/eval,这样就不需要解析任何东西。 - Steve Hanov
XML有什么问题吗?如果想要存储数据,而使用数据库有点杀鸡焉用牛刀的话,我认为XML会非常适合。 - Chris Dale
XML的问题在于它不具备可扩展性,最终你会遇到与文本文件相同的问题。 - ilivewithian
还有一个与XML相关的问题:没有类型(一切都是字符串),与其他存储类型相比,文件大小巨大,并且在PHP中使用XML不像其他文件类型那样容易(JSON更容易,更小,具有类型,json_(en / de)code和file_get_contents)-就是这样。 - CodeBrauer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接