Afaik, SQLite almacena una única base de datos en un solo archivo. Dado que esto disminuiría el rendimiento cuando se trabaja con bases de datos grandes, ¿es posible decirle explícitamente a SQLite que no almacene todo el DB en un solo archivo y almacene diferentes tablas en diferentes archivos?Múltiples archivos para una sola base de datos SQLite
Respuesta
Si no necesita una unión entre estas tablas, puede dividir manualmente la base de datos y decir qué tablas están en qué DB (= archivo).
No creo que sea posible dejar que SQLite divida su base de datos en varios archivos, porque se conecta a un DB indicando el nombre del archivo.
No se puede permitir tener tablas como diferentes bases de datos. Además, el número máximo de bases de datos adjuntas está limitado a 62 en SQLite. :( – thameera
Los archivos de base de datos SQLite pueden crecer bastante sin penalizaciones en el rendimiento.
Las cosas que podrían degradar el rendimiento son:
- de bloqueo de archivos contención
- tamaño de la tabla (si se utiliza índices y emitir consultas de escritura)
Además, de forma predeterminada, SQLite limita la number of attached databases to 10.
De todos modos, try partition your tables. Verás que SQLite puede crecer enormemente de esta manera.
Por lo que yo entiendo de la publicación vinculada, el concepto de partición es auto-implementado. SQLite no tiene soporte de particiones incorporado como algunos otros RDBMS. ¿Correcto? –
La pregunta tiene unos tres años pero llegué aquí cuando busqué la misma pregunta. Tarde descubrí, que es posible:
Uso
sqlite3.exe MainDB.db
ATTACH DATABASE 'SomeTableFile.db' AS stf;
Acceso a la tabla de la base de datos de otro archivo
SELECT * FROM stf.SomeTable;
Incluso puede unirse a varios archivos
SELECT *
FROM MainTable mt
JOIN stf.SomeTable st
ON (mt.id = st.mt_id);
https://www.sqlite.org/lang_attach.html
tameera dijo que hay un límite de 62 bases de datos asociadas, pero nunca llegué a ese límite, así que no puedo confirmar que.
La gran ventaja, además de algunos casos especiales, es que limita la fragmentación en los archivos de la base de datos y puede usar el comando VACUUM por separado en cada tabla.
Aparentemente hay un interruptor de límite para limitar el número de bases de datos que se pueden unir a una conexión 'SQLITE_LIMIT_ATTACHED'. ¿Quizás Tameera alcanzó ese límite en la prueba? – Sampath
- 1. ¿Bases de datos SQLite múltiples para idiomas múltiples?
- 2. Múltiples bases de datos frente a una sola base de datos
- 3. Android - ¿Existe una base de datos SQLite?
- 4. Fusionando dos archivos de base de datos SQLite (C# .NET)
- 5. Usando SchemaSpy para visualizar una base de datos SQLite (windows)
- 6. Una herramienta de desarrollador para diseñar una base de datos SQLite para Android
- 7. Android: ¿puedo usar una clase SQLiteOpenHelper para múltiples archivos de base de datos?
- 8. ¿Puedo encriptar la base de datos SQLite?
- 9. MySQL: Inserciones múltiples para una sola columna
- 10. Base de datos SQLite para la aplicación de Android con posibles usuarios múltiples
- 11. Use una sola acción para múltiples modelos
- 12. Insertar .csvs en una base de datos SQLite en Java
- 13. base de datos sqlite no creada
- 14. Seguridad de la base de datos Sqlite
- 15. ¿Puede una sola definición schema.ini cubrir múltiples archivos
- 16. ¿Puedo leer y escribir simultáneamente en una base de datos SQLite desde múltiples conexiones?
- 17. SQLite: base de datos de solo lectura
- 18. Crear base de datos SQLite en android
- 19. Cifrar base de datos SQLite en C#
- 20. Contenedor de base de datos ligero de Python para SQLite
- 21. Replicación punto a punto de una base de datos sqlite
- 22. Número de filas en una base de datos SQLite
- 23. Eliminar una sola base de datos ravendb mientras ravendb ejecuta otras bases de datos
- 24. Razones para utilizar la base de datos SQLite legible
- 25. base de datos SQLite con FMDatabase Envoltura
- 26. Android ExpandableListView y base de datos SQLite
- 27. base de datos está bloqueado en SQLite
- 28. Compartir bases de datos sqlite entre múltiples actividades de Android
- 29. Base de datos SQLite en Javascript localmente
- 30. cómo reducir la base de datos sqlite?
¿Por qué lo necesitas? ¿Cuál es la funcionalidad que no se puede lograr/O los problemas que pueden ocurrir al usar el único archivo DB? –
Planeo reemplazar un Oracle DB con SQLite. Miles de transacciones a lo largo del día y me temo que leer y escribir un solo archivo ralentizará el proceso. De todos modos parece que SQLite no será la mejor opción para manejar una base de datos tan grande. – thameera