2009-09-29 7 views
2

Je travaille (toujours) sur un programme iPhone qui utilise SQLite3. J'ai réussi à optimiser les écritures de la base de données autant que possible.Comment améliorer les performances du programme iPhone SQLite3

Le problème que j'ai maintenant est que "END TRANSACTION" me tue car cela prend beaucoup de temps. Le fichier journal est généralement d'environ 50k, ce qui pourrait poser problème, mais j'aimerais connaître vos idées.

J'ai essayé d'utiliser "PRAGMA synchrone = 0", mais cela a provoqué une corruption de données. Ma dernière tentative d'optimisation est "PRAGMA journal_mode = TRUNCATE" mais je ne sais pas si cela aide beaucoup.

Des suggestions à ce stade?

Répondre

4

Avez-vous essayé la journalisation en mémoire?

"PRAGMA journal_mode = MÉMOIRE"

Ce fut l'un des boosts de performance les plus importants pour nous.

Si ce n'est pas encore assez rapide, essayez les trucs memsys5. http://www.sqlite.org/compile.html#enable_memsys5

+0

J'ai ajouté cela et vu comment cela fonctionne. Jusqu'à présent, cela a été très rapide. Merci. –

+0

Comment ajoutez-vous cela, est-ce une exception ou avez-vous besoin de l'ajouter à chaque déclaration? – Openside

Questions connexes