📜  Apache CouchDB简介

📅  最后修改于: 2021-08-29 02:45:59             🧑  作者: Mango

Apache CouchDB由Apache Software Foundation开发,最初于2005年发布。CouchDB用Erlang编写。它是一个开源数据库,它使用各种不同的格式和协议来存储,传输和处理其数据。它使用JSON来存储数据,使用MapReduce的JavaScript作为其查询语言以及使用API的HTTP。文档是CouchDB中数据的主要单位,并且还包含元数据。文档字段具有唯一的名称,并且包含不同类型的值,并且对文本大小或元素计数没有设置限制。

历史

CouchDB是用Erlang编程语言编写的。它由Damien Katz于2005年启动。CouchDB在2008年成为Apache项目。CouchDB的当前版本为1.61。

建筑学

CouchDB架构

CouchDB的体系结构描述如下:

  1. CouchDB引擎:它基于B树,并且在其中通过键或键范围访问数据,这些键或键范围直接映射到基础B树操作。它是管理内部数据,文档和视图的系统核心。
  2. HTTP请求:用于创建索引并从文档中提取数据。它是用JavaScript编写的,它允许创建由MapReduce作业组成的Adhoc视图。
  3. 文档:它存储大量数据。
  4. 副本数据库:用于将数据复制到本地或远程数据库并同步设计文档。

CouchDB的功能

CouchDB的功能包括以下内容:

  1. 复制:它提供了最简单的复制形式,没有其他数据库是如此简单地复制。
  2. 文档存储:这是一个NoSQL数据库,紧随文档存储之后,其中的每个字段都具有唯一的名称,并包含各种数据类型的值,例如文本,数字,布尔值,列表等。
  3. ACID属性: CouchDB文件布局遵循ACID属性的所有功能。
  4. 安全性:它还提供数据库级别的安全性,并且权限分为读取者和管理员,其中读取者可以对数据库进行读取和写入。
  5. Map / Reduce: CouchDB普及的主要原因是Map / reduce系统。
  6. 身份验证: CouchDB可以帮助您通过类似于Web应用程序的会话cookie来保持身份验证处于打开状态。
  7. 专为脱机而构建: CouchDB可以复制到智能手机等设备,这些设备具有脱机功能,并在设备重新联机时为您处理数据同步。
  8. 最终一致性: CouchDB保证最终一致性,以提供可用性和分区容限。
  9. HTTP API:所有项目都具有通过HTTP公开的唯一URI(唯一资源标识符)。它对所有资源的四个基本CRUD(创建,读取,更新,删除)操作使用POST,GET,PUT和DELETE之类的HTTP方法。

CouchDB的优势

CouchDB的优点包括:

  1. HTTP API用于轻松通信。
  2. 它用于存储任何类型的数据。
  3. ReduceMap允许优化数据组合。
  4. CouchDB的结构非常简单
  5. 快速索引和检索。

CouchDB的缺点

CouchDB的缺点包括:

  1. CouchDB占用大量空间用于开销,与其他数据库相比,这是一个主要缺点。
  2. 任意查询都很昂贵。
  3. 与大多数替代方案相比,CouchDB有一些额外的空间开销。
  4. 巨大的数据集上的临时视图非常慢。
  5. 它不支持交易
  6. 大型数据库的复制可能会失败。