I'm no database expert, but I wonder if it would be wise to break those up into multiple queries instead of joins. Joining post with person and community would result in a ton of duplicate data, wouldn't it?
I'm actually interested in what people have to say about this, because I have a project that's kind of sensitive to database query performance, and I'm worried that I'll find out about some performance bottleneck the hard way like Beehaw just did. The more I learn about the subject, before my project goes to production, the better!