DiffChange objects tend to have a lot of data in the info blob. We should avoid:
- loading the info blob from the database, if it is not needed
- unserializing the info blob
- unserializing the diff array in the info blob
- instantiating Diff objects, if not needed
It seems like the only reason to look into the diff when dispatching changes is to find out whether the change added a sitelink. We could store that information separately, e.g. in a separate field in the info blob.
See T109088: [Task] Profiling and investigate how to improve performance of change dispatcher for the rationale.