While mucking around in Lightroom today and setting up some smart collections, I wondered if having a large number of smart collections might negatively impact performance? I'm thinking that Lightroom must be continually monitoring changes to metadata and updating these collections... is this likely to have any significant impact on the speed of operations?

4 Answers
4

Difficult to answer, I read a lot about LR but I don't recall an Adobe engineer commenting on that. However, from a software perspective, my answer would be no. I don't think LR is constantly monitoring performances; metadata changes when you make changes, at which point LR can decide: "hey, these specific photos have changed, let me queue them up to see if some smart collections need to be updated". Every now and then, and/or at least in a background thread, the queue would be processed and the smart collections updated. LR is heavily multi-threaded so my gut feeling is that you won't feel the update going on.

Lightroom keeps metadata in its catalog (a SQLite database) and optionally in your DNG/JPG/RAW/XMP files if you either write them back manually or have instructed LR to do so for you automatically (not recommended for performance). With that in mind, your metadata may be altered when a third-party application modify your files outside of Lightroom. When that happens, LR will show a small icon next to your thumbnail telling you that the metadata in the file need to be synchronized with the metadata in the catalog. Unless I'm wrong, it's up to you to make that decision by manually selecting: "synchronize metadata" or "read metada from file". When you do so, we are back to the situation above, I guess LR can decide to queue up the photos to see if smart collections need to be updated, in the background.

Given that lightroom is implemented on top of a premier SQL database engine (SQLite 3, that is), it is highly unlikely that Smart Collections have any performance consequence until they are referenced.

The setup for a smart collection is just a friendly way to write a (possibly complicated) database query for photos that match the collection's parameters. SQL is good at that kind of complicated query (its exactly what SQL was invented to do, after all), and it is unlikely that you can have enough photos in your catalog to make the cost of a single smart collection's query noticeable.