In my last post about the Matrix network I covered how to set up a public Synapse server as well as a web-based client called Riot. In so doing I left out a part of the process for the sake of clarity (because it's a hefty procedure and there's no reason not to break it down into logical modules), which was using a database back-end that's designed for workloads above and beyond what SQLite was meant for. I'll be the first to tell you, I'm not a database professional, I don't know a whole lot about how to use or admin them aside from installing stuff that uses databases, so there's probably a lot of stuff I'm leaving out. I'd love to talk to some folks who are more knowledgable than I am.
That said, the only other database server that Synapse supports is Postgres, which seems to have a user interface very different from that of what I use most often (MySQL) so the same procedures don't apply. I'm going to do my best to break things down. To make it more clear, I will not be referring back or comparing to MySQL because that will needlessly muddy already unclear waters.