Pergunta

Quais são as diferenças entre SQLite e DISQLite e por que eu iria querer escolher um sobre o outro?

O meu contexto é que estou lidando com um grande banco de dados (pode ser de até 10 GB), a parte crítica do que está em uma tabela muito simples, com um único campo indexado e um campo de texto até alguns KB de tamanho . Minha ferramenta de desenvolvimento é Delphi 2009 eo banco de dados será incorporado no meu .exe.

As minhas principais critérios é a velocidade. Isso seria para um aplicativo de software executado em um computador típico do Windows, dizer com Windows 7 e 4 GB de RAM.

Se você quiser sugerir uma outra ferramenta de banco de dados, por favor me diga por que seria melhor do que estes dois para a minha candidatura, especialmente na fronteira velocidade.

Foi útil?

Solução

AFAIR, DISQLite usa os arquivos obj do SQLite, e compilá-los com Delphi e produzir mais recursos do que o original, e usando o mesmo formato sqlite DB, portanto, você pode ler o arquivo de banco de dados DISQLite por ele por outras línguas que tem suporte para drivers SQLite.

mais um também apresentam com DISQLite você não tem para distribuir o Sqlite DLL.

Suporte DISQLite tamanho do banco de dados até 2 TB, para que ele pudesse lidar com o seu exige, sem problemas.

Outra opção que eu iria considerar é FireBird versão integrada, e se você gostaria de escalá-lo mais, você pode mudar para servidor Firebird completo sem muito esforço.

Mas eu acho que ambos Sqlite & DISQLite terá um desempenho melhor do que o Firebird.

Eu uso ComAud Sqlite componentes para acessar bancos de dados SQLite, e você pode compilá-lo com o arquivo Sqlite objs assim você não terá implantar sqlite dll.

Outras dicas

posso sugerir-lhe escrever sua própria implementação. Se você não precisa de consultas SQL complexas, o mais simples (e provavelmente o mais rápido) implementação é o armazenamento baseado em arquivo.

DISQLLite tem duas versões com o um livre limitado a uso pessoal e não-comercial. Portanto, este poderia ser um dos o fator decisivo como SQLite é a implementação opensource livre sem versões livres / pagos.

Ambos da base de dados seria capaz de lidar com dados que variam em GBs. SQLite está disponível em pré-compilado binário ou seja DLL que pode ser distribuída ao longo de sua aplicação. No entanto, com o código fonte disponível você também pode compilá-lo dentro de sua aplicação e usá-lo sem a necessidade de DLL.

A vantagem de usar o módulo DLL (às vezes) é quando alguns dos erros são resolvidos você simplesmente seria necessário para substituir a DLL na máquina cliente em vez de recompilar o aplicativo inteiro.

Eu me sinto SQLite seria uma opção melhor para yor exigência. Velocidade de banco de dados não é inteiramente baseado no tipo de banco de dados. Hardware como velocidade de acesso disco rígido, o poder de processamento disponível, RAM etc também desempenham um papel importante na aceleração do banco de dados.

Note que a versão pessoal DISQLLite tem algumas limitações e eu não acho que o preço para a versão profissional (Euro 149,99 sem fonte) vale a pena quando qualquer um pode simplesmente implementar um invólucro SQLite gratuitamente.

Eu estava usando DISQLite pessoal para um produto freeware e teve que implementar uma mudança de banco de dados em um novo lançamento da versão. A versão pessoal não suporta 'ALTER', então eu foi confrontado com a necessidade de comprar a versão completa. Então, eu abandonou DISQLite e só fui com um invólucro bom SQLite. Apenas ir para DISQLite se você está preparado para pagar para a versão completa.

SQLite4Delphi pode ser uma opção melhor, ou pelo menos apontar-lhe uma solução mais rentável.

Dê uma olhada em nossa unidade SynBigTable . É será muito mais rápido do SQLite , e parece se encaixar exatamente o seu propósito .

E se você precisar de uma implementação SQLite nativa, dê uma olhada no nosso SQLite3 quadro : é grátis e OpenSource, sem qualquer dll externo. E tem mais algumas características que o DiSQLite fechado (como classes nativas Delphi para a implementação de funções SQL ou tabelas virtuais).

Para o desempenho POV, o gargalo não será o wrapper que você está usando, mas o acesso ao disco, e como você configurar seu banco de dados. Não se esqueça de usar índices para recuperar seus dados o mais rápido possível. Então, mesmo 10 GB de dados não será um problema para SQLite, qualquer invólucro que você está usando.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top