Casa > Q > Qual É A Diferença Entre Sqlite E Berkeley Db?

Qual é a diferença entre SQLite e Berkeley DB?

Primeiro as semelhanças: ambos são bases de dados incorporadas, o que significa que você compila em bibliotecas para acesso direto aos dados, em vez de se conectar a um processo de base de dados através de um socket de rede. Em comparação com um RDBMS tradicional, isto tem a vantagem de reduzir muito as despesas gerais, especialmente no caso de chave/valor, onde a falta de um analisador SQL o torna bastante rápido. Ambos são de código aberto; Berkeley DB é lançado sob a GPL, SQLite parece estar simplesmente no domínio público.

SQLite está focado principalmente em casos de uso de uma única thread com conjuntos de dados pequenos. Para esse fim, é uma escolha muito boa. Tão bom de facto que tanto a Apple como o Google escolheram usá-lo no iOS e Android respectivamente, entre outros. Para saber mais sobre isso, veja aqui:
Usos apropriados para SQLite

Existem vários sabores de Berkeley DB, o mais parecido com o SQLite é a biblioteca C (também compatível com C++/C#). Caso alguém esteja curioso, os outros dois são Berkeley DB JE, um banco de dados Java puro, e Berkeley DB XML, que como você provavelmente adivinhou é usado para armazenar documentos XML.

Todos os 3 são armazéns de dados chave/valor, mas desde 2010 a biblioteca C também tem uma API SQL. A API SQL é baseada no SQLite, por isso são compatíveis com a API. Você pode encontrá-la aqui:

BDB>Berkeley DB

Se nos focarmos apenas na biblioteca C, BDB tem dois pontos de comparação: API SQL e chave/valor. Comparando a API SQL, Berkeley DB é destinado a aplicações que requerem conjuntos de dados maiores ou concorrência. Nestes tipos de casos de uso, Berkeley DB terá um desempenho superior ao do SQLite. Outra é a criptografia, que não está disponível no SQLite sem uma licença.

Comparar a biblioteca key/value C é um pouco de maçãs e laranjas, mas aqui vai: em geral, se você quer o melhor desempenho e don'não precisa/quer a estrutura que SQL fornece, ou se você'gostaria de implementar seu próprio estilo de acesso aos dados orientado a objetos, vá com BDB. Se você já conhece SQL e está confortável com ele, tem um pequeno conjunto de dados e não há necessidade de alta concorrência, SQLite é provavelmente o que você quer.

BDBerkeley também tem uma opção de alta disponibilidade para escalonamento de leitura. Se você precisa tanto ler e/ou escrever em escala, lá's Oracle NoSQL Database, que é construído em cima do Berkeley DB JE.

Temos clientes em produção com conjuntos de dados terabyte usando Berkeley DB.

Eric Jensen
Oracle PM

De Polinski Herbster

Como a Índia alcançou a 3ª posição no PIB (PPP) quando ocupa a 9ª posição no PIB (nominal)? :: Quais são as regras no "código do irmão"?