Right now, on global preference save, we delete all the preferences known to the local wiki and reinsert whole dataset, even if only 1 row has changed. Not only this results in increased DB load, it will also cause deadlocks with sufficient concurrency. Just save only the settings that have changed, like most other places we do similar things (e.g. LinksUpdate in core).
Customize query in gerrit
|mediawiki/extensions/GlobalPreferences||master||+26 -6||Make only needed DB operations when saving preferences|