应用引擎:NDB 和 Datastore 之间的区别
我最近在看Google App Engine的文档(Python),发现有两种不同的存储方式。
- NDB 数据存储
- DB 数据存储
这两种存储的免费配额似乎是一样的,数据库设计也差不多。不过,NDB会自动把数据缓存到Memcache里!
我其实在想,什么时候该用哪种存储呢?一般来说有什么好的做法吗?
我可以完全依赖NDB而不使用DB吗?应该怎么做呢?
我用Django有一段时间了,听说在Django-nonrel中,JOIN操作可以在NDB中进行!而其他的存储则用在DB中!这是为什么呢?这两种存储都是无模式的,设计也很相似……为什么在NDB中可以处理JOIN,而在DB中却不行呢?
1 个回答
5
简单来说,这里说的是两种版本的数据存储方式。db是旧版本,ndb是新版本。它们的区别在于模型,在数据存储中这两者是一样的。ndb有一些好处,比如它可以自己处理缓存(也就是内存缓存)。而且ndb的速度比db快。所以你肯定应该选择ndb。如果要使用ndb的数据存储,只需要在定义你的模型时用ndb.Model就可以了。