I hereby declare that $wgDatabaseMessages can be safely set to true. As long as memcached is enabled.
I rolled all the messages into one memcached entry. At first it didn't seem to make much difference. I was confused as to why it seemed to be taking much longer to load from a cache than from Language::getMessage, even though they were both doing the same thing. The reason, when I eventually discovered it, was quite surprising: is_array() is quite fast when it returns false, but painfully slow when it returns true. Like, a millisecond. I rearranged my code so that it doesn't use that function.
-- Tim Starling.
wikitech-l@lists.wikimedia.org