Vaccuming the database
I was pretty skeptical about this trick, which is detailed here but after vacuuming the database iPhoto started up a lot faster for some reason. Here's a short quote of what you have to do.
To vacuum your iPhoto library, start by making sure iPhoto isn't open, and then open up Terminal (located in Applications/Utilities). Firstly, you have to point the Terminal to where your iPhoto Library is using the cd (change directory) command. By default, this should be:
cd "~/Pictures/iPhoto Library"
Paste the above line into the Terminal, then hit return. If your iPhoto Library isn’t in your Pictures folder you will have to adjust the command to your specific needs. Next, to perform the vacuum, use the following command:
for dbase in *.db; do sqlite3 $dbase "vacuum;"; done
Another way to speed up iPhoto is to turn off the main effects in iPhoto such as shadows and outlines. Another important option to turn off is the item counts, for smart album. If item count is turned on iPhoto checks the item counts in the smart albums frequently, slowing iPhoto down.
Checking for photo duplicates
A while ago I was looking for free software that was capable of checking for duplicates within iPhoto, and doing that for free. While there are far more elegant paid solutions, I prefered image comparitor found here. Again, it is not the most elegant solution to finding duplicates within iPhoto but it gets the job done.
For a quick walkthrough on how to use it all you do is open the app, and then in a new finder window navigate to your iPhoto library, and right click and click show package contents. Then what I did was go to "Originals" and in image comparitor press choose folder and I would drag a year in (Ex: 2010) and press choose and it'll be running and checking for duplicates. Do not use it to delete your photos, as you should always delete them in iPhoto yourself (deleteing them via the library could corrupt the overall structure). For me I searched the two names of the photos that are supposedly duplicates (Ex: IMG_xxx) and if they were I deleted them. Now you might ask why I couldn't just navigate to the iPhoto library myself in the application, and my answer is that the app can not open the iPhoto package, so you have to open the package in finder and drag it into the app.
Rebuild iPhoto Library
When iPhoto is not open hold command option and open up iPhoto (in the dock or in the applications folder) and you should see this following window
If you are having problems with iPhoto you can try to use it to rebuild your library, and it gives a variety of options as well. Now note that I personally haven't had a corrupted iPhoto library (plus I keep time machine backups) but this is one option that you could try if your iPhoto library is acting up.
Another application that you could try is fat cat's iPhoto Library manager, which preforms various useful functions such as splitting up your iPhoto library, merging multiple libraries, and rebuilding/extracting photos from corrupted libraries. Best of all it's free pretty much, though for more advanced features (which I'm not sure of) it's a $20 purchase. I just keep the link around in case I have to use it, but again I haven't really experienced problems with my iPhoto library.
So, in the end, just some applications and tips from me to you about iPhoto. I usually look for tips about speeding up iPhoto, but once in a while I come across one that talks about recovering corrupt libraries. Enjoy!