数据库的最新热潮似乎集中在非关系数据库上。为什么?好像有点适得其反。例如,以关系方式表达我的数据对我来说更有意义(Django + SQL for tables 中的示例代码):
class Post(models.Model):
name = models.CharField()
created = models.DateTimeField(auto_now_create = True)
class Comment(models.Model):
text = models.TextField()
post = models.ForeignKey('Post')
created = models.DateTimeField(auto_now_create = True)
SQL:
create table post (id int primary key auto_increment,
name varchar,
created datetime);
create table comment(id int primary key auto_increment,
text text,
post_id int,
created datetime,
foreign key post_id references post(id));
SQL 的强大之处在于,这些信息可以用 多种方式表达。当然,存在整个对象关系映射问题,但我将其视为一个特性,而不是一个问题。使用 SQL,我可以获取给定帖子中比昨天更早的所有不同评论,将所有这些评论整理在一起,并生成统计信息。非关系数据库也可以这样做吗?
使用像 MongoDB 这样的非关系型数据库似乎也会真正影响性能,因为您将立即获取整个对象图,而不是您最需要的。
有人可以向我解释使用非关系数据库有什么好处吗?