你能指出其他数据存储工具,并给出使用它们而不是旧的关系数据库的充分理由吗?在我看来,大多数应用程序很少使用SQL的全部功能——看看如何构建一个无SQL的应用程序会很有趣.

推荐答案

文件系统中的纯文本文件

  • 创建和编辑非常简单
  • 方便用户使用简单的工具(如文本编辑器、grep等)进行操作
  • 二进制文件的高效存储

磁盘上的XML或JSON文件

  • 如上所述,但有更多的能力来验证 struct .

Electron 表格/CSV文件

  • 商业用户非常容易理解的模型

Subversion(或类似的基于磁盘的版本控制系统)

  • 非常好地支持数据的版本控制

Berkeley DB(基本上是一个基于磁盘的哈希表)

  • 概念上非常简单(只是未键入的键/值)
  • 很快
  • 无管理费用
  • 支持我相信的交易

Amazon's Simple DB

  • 我相信很像伯克利DB,但是

Google's App Engine Datastore

  • 托管且高度可扩展
  • 每文档键值存储(即灵活的数据模型)

CouchDB

  • 文档焦点
  • 半 struct 化/基于文档的数据的简单存储

本地语言集合(存储在内存中或在磁盘上序列化)

  • 非常紧密的语言整合

定制(手写)存储引擎

  • 在所需的使用情况下可能具有非常高的性能

我不能说自己对它们了解多少,但你也可以看看object database systems个.

Sql相关问答推荐

String - Split 多列

如何防止 SQL 中的负收入值并将其重新分配到接下来的月份?

T-SQL 查询计算日期在其他列中定义的日期之间绑定的行数

条件前置值

为每组填写行以进行旋转

MariaDB 获取所有可能日期的按日期时间分组的计数值

函数没有给出任何响应

连接两个表,其中第二个表中的日期应该是第一个表中日期之后的第一个日期,即第一个表中日期之后的最早日期

如何在Oracle数据库的单个列中连接case语句值的值

在 SQL (Postgres v13) 中连接表并更新列中的值

优化sql查询:判断表B中的所有行,如果表C中的任何行引用表A中的同一行

SQL - 根据某些 where 子句将多列更新为空

您如何编写 presto 查询以将字符串拆分为自己的列

为什么不判断一次 CTE?

如何以链表的形式遍历postgresql?

ORDER BY 首先具有特定值

我的 Select SUM 查询返回 null.它应该返回 0

SQL Server IF NOT EXISTS 用法?

从 SQL 命令文本到 DataSet 的直接方法

SQL Management Studio 在脚本创建后无法识别表存在