Thanks for the quick replies Chris & John!
I’ll have a think about the problem from another angle, specifically looking at CPTs.
Fortunately the project is still relatively young and I’m in a position where I can change approach relatively easily.
I was hoping that while there will likely be be a large number of rows, the data would be basic enough for this not to be an issue overall when using save_post.