Solving Slow iPhoto Problems and other iPhoto Troubleshooting
If your iPhoto Library is large and complex, the database and files themselves may need repairing or rebuilding. Sometimes doing this can resolve issues such as the library appearing to be unreadable, missing photos, or other issues related to the iPhoto Library database.
Fix iPhoto Slow problems
First of all, make a backup of your iPhoto library.
Secondly, you should update your iPhoto to the latest version by choosing ‘Software Update’ from the Apple menu. You might find that a software update improves your iPhoto experience, so you might not need to take the steps below. If you’re still having problems after the update, follow the instructions below.
Apple provides specific instructions that apply to iPhoto versions 6 and later. Apple’s document explains how to rebuild the database and what the different options do.
If iPhoto is open, close it. Hold down the Command Option keys while iPhoto opens and the Photo Library First Aid window will appear (on versions 9.3 and later, older versions have a slightly different window).
Advanced Tip – Vacuum or Purge the iPhoto library databases
Note: Please backup your iPhoto database first.
Many have used this tip successfully to purge the iPhoto library database, resulting in quicker opening times and a general speed improvement. Please backup your iPhoto library before performing this procedure.
iPhoto can sometimes take a long time to open. This is usually when you have a large library, but purging or vacuuming it can drastically improve opening times. For example, before this command, an iPhoto library of 8000 photos was taking more than 30 seconds to load. After the database has been vacuumed, it takes just a few seconds.
Inside the iPhoto Library Package, there are four SQLite databases (face_blob.db, face.db, iPhotoAux.db and iPhotoMain.db).
If you’ve never used the Terminal before, read our guide about using the Terminal.
Open Terminal and cd into your iPhoto Library (by default, cd “~/Pictures/iPhoto Library”).
Once there, execute the following command:
for dbase in *.db; do sqlite3 $dbase “vacuum;”; done