Postgres Demystified
It's amazing how the newcomers to tech seem to ignore 'proven' databases like PostgreSQL so easily that have actually stood the test of time and actually have the <i>real</i> capacity to scale enormously on demand (which when done right). What is more disappointing is how the newcomers seem to trade in for beta-quality NoSQL databases that promise them of better reliability and scalability out of the box, which is simply not true[1]. For instance, databases like MongoDB promise the developer to not worry about scalability and focus just on their code, while it does some things under the hood in a terrible way [2].<p>PostgreSQL is one of the few databases that supports SQL and can actually be less painful to scale than MySQL. Also, the recent versions have enormous performance boost that can silence the SQL critics, IMO.<p>If you are interested in testing out PostgreSQL for your project, you might want to develop on the WAPP stack and give it a shot:<p><a href="http://bitnami.com/stack/wapp" rel="nofollow">http://bitnami.com/stack/wapp</a><p>Disclaimer:<p>I was a mongoDB developer too and I loved it so much. I loved the fact that I could skip running db migrations on my rails app and I can focus on just coding, instead of worrying about scaling. But, it was a terrible trade off. First of all, you can't use NoSQL for everything. It was a very painful lesson that I learned the wrong way. 99% of the time, you want to use SQL, because most use cases can be executed perfectly with SQL db's. Next, some db's have a terrible architecture and design decisions under the hood, mainly to improve their benchmarks (seriously!). For example, turning off write-safe by default... :cough: :cough:
Last but not the least, SQL for the wrong use case complicates things and ends up adding redundancy into the database (like storing User details inside multiple collections, un-avoidable, especially when you are against embedding documents). The worst trade-off using a NoSQL database is the analytics part - "Hey db, show me the list of users who are from the United States and who have subscribed to Plan X and who are the highest paying customers and who love chocolate pie" 
SQL - "Here you go." NoSQL - "Sorry sir, not possible. Possible, but possibly a nightmare."<p>If you want to build a 'scalable' app for your next big thing and don't want the scaling hassles of MySQL, which actually scales extremely well already[3], you can use PostgreSQL.<p>Cheers<p>[1]Scaling is <i>hard</i>. Don't let anyone else tell you otherwise!<p>[2] <a href="http://blog.engineering.kiip.me/post/20988881092/a-year-with-mongodb" rel="nofollow">http://blog.engineering.kiip.me/post/20988881092/a-year-with...</a><p>[3] <a href="http://www.quora.com/Quora-Infrastructure/Why-does-Quora-use-MySQL-as-the-data-store-instead-of-NoSQLs-such-as-Cassandra-MongoDB-or-CouchDB" rel="nofollow">http://www.quora.com/Quora-Infrastructure/Why-does-Quora-use...</a>