Ce que je peux lire et écrire dans une base de données SQLite simultanément à partir de plusieurs connexions?
J'ai une base de données SQLite qui est utilisé par les deux processus. Je me demande, avec la plus récente version de SQLite, alors qu'un processus (de connexion) démarre une transaction pour écrire dans la base de données de l'autre, être capable de lire à partir de la base de données simultanément?
- une question relative à voir ici.. stackoverflow.com/questions/12117016/...
Vous devez vous connecter pour publier un commentaire.
J'ai recueilli des informations auprès de diverses sources, principalement à partir de sqlite.org et les mettre ensemble:
D'abord, par défaut, plusieurs processus peuvent avoir la même base de données SQLite ouverts en même temps, et plusieurs d'accès en lecture peuvent être satisfaits en parallèle.
Dans le cas de l'écriture, une écriture unique à la base de données des verrous de la base de données pour un court laps de temps, rien, même la lecture, vous pouvez accéder au fichier de base de données.
À partir de la version 3.7.0, une nouvelle “Write Ahead Logging” (WAL) option est disponible, dans lequel la lecture et de l'écriture peut être réalisée en même temps.
Par défaut, WAL n'est pas activé. À son tour WAL, reportez-vous à l'SQLite documentation.
SQLite3 permet explicitement les connexions multiples:
Pour le partage de connexions, utilisez SQLite3 cache partagé: