There's something terribly horribly wrong with either your database setup or your queries. 100,000 entries is miniscule. Do you have indexes on the join columns in your queries?
(But do use Postgres, it's better than MySQL for most cases!)
I learned SQL at University, but that was 5 years ago so I'm a bit rusty. There's 1 table with a primary key (a string ID), which is used for rows with duplicate ID's, so in theory MySQL should be quick with it.
Thanks for the info, I'll have to dig further, but at least now I know it should be fast even in MySQL.
(But do use Postgres, it's better than MySQL for most cases!)