Questa non è direttamente una risposta alla tua domanda, ma ho un po 'di esperienza nell'usare l'accesso casuale per i blob (grandi) in SQLite, e ti consiglio di non usarla, se puoi. Ecco perché:
Blob interrompono completamente il formato di query SQL. Se i dati blob richiedono un qualsiasi tipo di elaborazione, a un certo punto sarà necessario filtrarli. A prescindere da quale sia il meccanismo che hai in atto per gestire il filtraggio in SQL.
La gestione di blob binari racchiusi in database contrapposti a dati binari in file raw limita le opzioni. Non sarai in grado di leggere e scrivere in modo casuale sui dati contemporaneamente da più processi, cosa possibile con i file. Non è possibile utilizzare nessuno strumento che si occupa di questi dati e fornisce solo un'interfaccia I/O file. Non è possibile troncare o ridimensionare il BLOB. I file sono semplicemente molto più versatili.
Può sembrare conveniente avere tutto contenuto in un unico file, in quanto semplifica il backup e il trasferimento, ma il dolore di lavorare con BLOB non vale la pena.
Così come il tuo avvocato, ti consiglio di scrivere i tuoi BLOB come file raw nel file system, e semplicemente memorizzare un riferimento al nome del file nel tuo database. Se i tuoi BLOB sono piuttosto piccoli e hai la certezza di non crescere, dimentica il mio consiglio.
Beh, il mio blob potrebbe occasionalmente crescere , ma questo è durante un aggiornamento completo dei servizi, quindi è "sicuro" dire che sono di lunghezza costante all'interno di un "ciclo di prodotto" (comunque lungo o corto che possa essere) –
Ma, sono totalmente d'accordo con ogni singola parola che dici , Preferirei davvero evitare il blob, ma a causa del modo in cui sono presentate le specifiche, non ho scelta:/ –
Thumbs up. Avrà bisogno di molti pareri legali prima che questa cosa sia finita. : P – Cray