Graphs show us that PrefetchingPropertyTermLookup::prefetchTerms() is being called around 70K times every minute. This is clearly too much for something like properties. I suggest adding a layer of APCu cache with TTL of ten seconds to keep the hot data in the servers for long period of time without drowning it.
We dove a bit deeper into all of the things that are happening surrounding the prefetching, term buffers, lookups, fallbacks and caching and decided that to do this properly we should probably aim for something like this:
This doesnt really account for just wanting to retrieve raw terms (rarther than term fallbacks yet), but that could also be worked in, even with its own cache.
This topic area might be a good candidate for a Wikidata-Trailblazing-Exploration