sql - nosql 是什么意思?有人可以用简单的话向我解释一下吗?

标签 sql nosql

在这篇文章中 Stack Overflow Architecture我读到了一个叫做 nosql 的东西,我不明白它是什么意思,我试图在谷歌上搜索,但接缝我无法确切地得到它是什么。

谁能用简单的词来解释 nosql 的意思?

最佳答案

如果您曾经使用过数据库,那么您可能使用过关系数据库。例如 Access 数据库、SQL Server 或 MySQL。当您考虑此类数据库中的表格时,您通常会想到网格,例如 Excel。您必须为数据库表的每一列命名,并且必须指定该列中的所有值是否都是整数、字符串等。最后,当您想在该表中查找信息时,您必须使用一种称为SQL。

围绕非关系型数据库正在形成一种新趋势,即不属于整齐网格的数据库。您不必指定哪些内容是整数、字符串和 bool 值等。这些类型的数据库更灵活,但它们不使用 SQL,因为它们的结构不是这样。

简而言之,这就是它们是“NoSQL”数据库的原因。

使用 NoSQL 数据库的优势在于您不必提前确切地知道您的数据会是什么样子。也许您有一个 Contacts 表,但您不知道要存储关于每个联系人的哪种信息。在关系数据库中,您需要创建“名称”和“地址”等列。如果您稍后发现需要电话号码,则必须为此添加一列。在 NoSQL 数据库中不需要这种规划/结构。还有潜在的扩展优势,但这有点争议,所以我不会在那里做任何声明。

NoSQL 数据库的缺点真的是缺少 SQL。 SQL 简单且无处不在。 SQL 允许您更轻松地对数据进行切片和切块以获取聚合结果,而在 NoSQL 数据库中则稍微复杂一些(您可能会使用 MapReduce 之类的东西,这需要一定的学习曲线)。

关于sql - nosql 是什么意思?有人可以用简单的话向我解释一下吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1245338/

相关文章:

mysql - 运行程序时"No database selected"

sql - 将 CSV 文件导入 sqlite 表

cassandra - 节点和vnode之间的区别

nosql - SimpleDB 作为主数据库,示例

php - 图结构数据库和 Php

sql - 从 SUM(column) <= @variable 的表中选择前 X

php - PDO INSERT准备好的语句,没有错误,但未插入数据

mysql - 将 CASE 添加到现有 View 中

neo4j - 在 Neo4j 中递归匹配子树

javascript - 循环遍历 mongodb 文档 id 数组并查询该 id 并将结果存储在新数组中给出空数组