Optimisez la base de données SQL d'iPhoto

Florian Innocente |
Une astuce livrée par Mac OS X Hints permet de redonner un peu de punch à iPhoto (version '09) lors de son lancement et dans la foulée de récupérer un peu de place sur le disque dur. iPhoto utilisant plusieurs bases SQL pour stocker ses données il s'agit de les purger de leur espace utilisé mais vide de tout contenu.

Le site donne la marche à suivre :

- Ouvrir le Terminal
- Taper la commande cd suivie d'un espace et faire glisser le dossier iPhoto Libray sur la fenêtre.
- Valider
- Copier coller la commande : for dbase in *.db; do sqlite3 $dbase "vacuum;"; done
- Valider

Nous avons fait l'essai sans rencontrer de problème ni perte de données. Pour autant, on conseillera absolument de faire une copie préalable de son dossier iPhoto Library. Dans le classement des données que l'on regrette méchamment d'avoir perdues, les photos arrivent rarement dernières.
Tags
avatar valentinnb | 
Testé et impression mitigée. Aucune perte de donnée ou de problèmes rencontrés...mais aucun gain sur le disque dur ou de performance sur iPhoto 09 non plus...
avatar Hindifarai | 
Précisions: - fermez iPhoto avant de lancer la commande(si une transaction est en cours la commande ne fonctionnera pas) - pour les non initiés la commande vacuum peut être comparée à une défragmentation de disque(c'est grossièrement comparé mais ça donne une vague idée). Pour les curieux voulant savoir ce qu'il en retourne avant de tapper la commande, vous pouvez lire ceci(en anglais dans le texte) http://www.sqlite.org/lang_vacuum.html
avatar sekaijin | 
C'est une astuce qui marche pour toute les bases de données qu'elle soient MySQL PgSQL SQLLite ou autres. c'est du au fonctionnement même des moteur de base de données et SQLLite même s'il gère ses base dans des fichiers ne déroge pas à la règle. vous pouvez utiliser sqlitemanager (qui tourne en php donc sur MAMP par exemple) pour gérer vos bases http://sourceforge.net/projects/sqlitemanager dans le même genre il y a http://code.google.com/p/phpliteradmin/ etc. vous trouverez des outils MACOS pour ce genre de travail http://www.versiontracker.com/php/qs.php?mode=basic&action=search&str=sqlite&srchArea=macosx A+JYT PS: ces outils permettent de faire des dump/restore qui garantissent la cohérence des données contrairement à une copie des fichiers (ils utilisent des verrous d'accès exclusif)
avatar biglittledragoon | 
La même manipulation fonctionne avec toutes les bases SQL. Ça marche notamment très bien avec les bases utilisées par Firefox 3 et qui ont tendance à prendre BEAUCOUP de poids pour rien (ce qui peut ralentir son fonctionnement). Pour ceux qui préfèreraient un logiciel plutôt que le Terminal, il y a le freeware [url=http://sqlitebrowser.sourceforge.net/]SQLite Database Browser[/url] qui permet, entre autres, de compacter les bases SQL.
avatar steiner | 
Je viens de tester et ça marche :) : - Pas de perte de données - Temps d'ouverture de iPhoto divisé par 2 voir 3.
avatar thebustre | 
testé et approuvé rapidité clairement accrue, et à l'ouverture et au visionnage/navigation gain d'espace incroyable: 5Go sur 20 Go soit 25% de gain !! merci beaucoup, et au passage, merci pour votre site ;-)
avatar Zoidberg | 
Euh... petite question: avec iPhoto 08 j'ai aucun fichier .db dans le dossier en question, et meme en dessous y a rien, est-ce normal (sachant que ca marche), ou alors j'utilise pas iPhoto comme il faudrait? Du coup l'optimisation a pas grand chose a optimiser ;) Merci
avatar bikoz | 
Comme Zoidberg: pas de fichier *.db avec la version '08. C'est vrai que j'ai choisi de ne pas stocker pas mes fichiers dans la base d'iPhoto. C'est sans doute la raison...
avatar Laurent_h | 
IDEM, avec iPhoto 08, ça créé juste un fichier *.db de 4ko dans la bibliothèque iphoto Il n'était pas là avant (merci TimeMachine ;-) ) News qui ne fonctionne qu'avec iPhoto 09 j'imagine ....
avatar gfiastre | 
Ben moi, ça ne fonctionne pas (iPhoto 09, 10.5.6). Voici l'erreur: " for: Command not found. dbase: Undefined variable. " Quelqu'un a une idée?
avatar vintz72 | 
> gfiastre A mon avis, tu utilises un shell de m... (genre csh) au lieu de bash. Lancer donc bash ("bash" devrait suffire) avant de lancer la ligne.
avatar BulgroZ | 
Sur une collection de 3500 photos, en iphoto '09, l'ouverture n'est longue que la première fois avec l'ouverture de session. Après, c'est quasi immédiat (iMac 24" 2,4Ghz). Donc je crois que je vais m'abstenir, au moins pour l'instant...

CONNEXION UTILISATEUR