Domanda

Quali sono le differenze tra SQLite E DISQLite e perché dovrei sceglierne uno piuttosto che l'altro?

Il mio contesto è che ho a che fare con un database di grandi dimensioni (potrebbe arrivare fino a 10 GB), la cui parte critica è in una tabella molto semplice con un singolo campo indicizzato e un campo di testo di dimensioni fino a pochi KB.Il mio strumento di sviluppo è Delphi 2009 e il database sarà incorporato nel mio .exe.

Il mio criterio principale è la velocità.Questo sarebbe per un'applicazione software in esecuzione su un tipico computer Windows, ad esempio con Windows 7 e 4 GB di RAM.

Se vuoi suggerire un altro strumento di database, per favore dimmi perché sarebbe migliore di questi due per la mia applicazione, specialmente sulla frontiera della velocità.

È stato utile?

Soluzione

AFAIR, DISQLite utilizza i file obj di SQLite, e compilarli con Delphi e produrre più caratteristiche di quella originale, e utilizzando lo stesso formato SQLite DB, da qui è possibile leggere il file di database DISQLite da essa da altri linguaggi che ha supporto per i driver SQLite.

Anche un'ulteriore funzione con DISQLite non devi distribuire la DLL SQLite.

DISQLite supporto per i database dimensioni fino a 2 TB, in modo che possa gestire il vostro richiede senza problemi.

Un'altra opzione vorrei considerare è Firebird versione embedded, e se volete scalare più, è possibile modificare a pieno server Firebird senza molto sforzo.

Ma penso che sia Sqlite & DISQLite si esibiranno meglio di Firebird.

Audcom componenti Sqlite per accedere ai database SQLite, e si può compilarlo con file di Sqlite objs in modo da non dover distribuire DLL SQLite.

Altri suggerimenti

ti posso suggerire a scrivere una propria implementazione. Se non avete bisogno di query SQL complesse, il più semplice (e probabilmente il più veloce) implementazione è di storage basato su file.

DISQLLite ha due versioni con quello libero limitato a uso personale e non commerciale. Quindi questo potrebbe essere uno dei il fattore decisivo, come SQLite è l'implementazione opensource gratuito senza versioni libere e / o pagamento.

Sia del database sarebbe in grado di gestire i dati che vanno in GB. SQLite è disponibile in pre-compilato binario cioè DLL che possono essere distribuiti lungo la vostra applicazione. Tuttavia, con il codice sorgente disponibile, è possibile anche compilarlo all'interno dell'applicazione e utilizzarlo senza la necessità di DLL.

Il vantaggio di utilizzare il modulo DLL (a volte) è quando alcuni dei bug sono risolti si sarebbe semplicemente richiesto di sostituire la DLL alla macchina client, invece di ricompilare l'intera applicazione.

Mi sento SQLite sarebbe una scelta migliore per yor requisito. Velocità di database non è interamente basata sul tipo di database. Hardware come velocità di accesso disco rigido, a disposizione potenza di elaborazione, memoria RAM ecc anche svolgere un ruolo importante per accelerare database.

Si noti che la versione personale DISQLLite ha alcune limitazioni e non credo che il prezzo per la versione professional (Euro 149,99 senza sorgente) è valsa la pena quando chiunque può semplicemente implementare un wrapper SQLite gratuitamente.

Stavo usando DISQLite personale per un prodotto freeware e ha dovuto implementare un cambiamento di database in una nuova release di versione. Il personale versione non supporta 'ALTER' così mi trovai di fronte a dover acquistare la versione completa. Così ho mollato DISQLite e appena andato con un buon SQLite involucro. solo andare per DISQLite se siete disposti a pagare per la versione completa.

SQLite4Delphi potrebbe essere una scelta migliore, o almeno si punta a una soluzione più conveniente.

Dai un'occhiata al nostro Unità SynBigTable.Sarà molto più veloce di SQLite, e sembra adattarsi esattamente al tuo scopo.

E se hai bisogno di un'implementazione SQLite nativa, dai un'occhiata al nostro struttura SQLite3:è gratuito e OpenSource, senza alcuna DLL esterna.E ha alcune funzionalità in più rispetto al DiSQLite chiuso (come le classi native di Delphi per l'implementazione di funzioni SQL o tabelle virtuali).

Per il punto di vista delle prestazioni, il collo di bottiglia non sarà il wrapper che stai utilizzando, ma l'accesso al disco e il modo in cui configuri il database.Non dimenticare di usare indici per recuperare i tuoi dati il ​​più velocemente possibile.Quindi anche 10 GB di dati non saranno un problema per SQLite, qualunque wrapper tu stia utilizzando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top