假设我想构建一个将RSS和Atom源下载到本地计算机的源阅读器,并允许您在本地查看它们。使用CouchDB或sqlite3作为此类应用程序的数据存储区有哪些优缺点?
答案 0 :(得分:16)
SQLite和CouchDB在各个方面可能都有所不同,但您认为优势或劣势取决于偏好和要求。
SQLite是一个存储关系(表)的SQL数据库。
CouchDB是一个NoSQL数据库,用于存储JSON文档(任何结构的对象)。
SQLite有架构。
CouchDB是无模式的。
SQLite是一个与您的应用程序链接并使用C API的库。
CouchDB是一个RESTful Web服务,它的API是HTTP和JSON。
SQLite没有网络概念。
CouchDB基本上是一个高性能的Web服务器。
SQLite是用C语言编写的。
CouchDB是用Erlang编写的。
哪些优点和缺点?这取决于你。 ;)祝你好运。
答案 1 :(得分:4)
来自rsp的好总结。如果不了解您的要求,很难说哪一个更适合您的用例。 SQLite提供的一个明显优势是安装和管理更简单。作为一个库,它链接到您的应用程序并与您的应用程序一起安装。没有要安装和配置的单独数据库。这是使SQLite和Berkeley DB等数据库库非常具有吸引力,并且可能比数据库服务器更可取的特性之一。
只是要添加到您的注意事项列表中,Berkeley DB和Berkeley DB Java Edition也是您可能需要考虑的数据库库。 Berkeley DB(用C编写)为您提供了使用无模式键值对API,类似POJO的Java API或SQLite兼容SQL API的选择。 Berkeley DB Java版(100%Java)为您提供了用于键值对,Java集合或类似POJO的对象持久性的Java API。 Berkeley DB和SQLite往往是那些寻求在其应用程序中嵌入数据管理功能的人们的首选产品。
免责声明:我是Berkeley DB的产品经理,所以我有点偏颇。 : - )