MemSQL has a great article about the evolution of databases through the times. I could try and summaries, but the original article is so well written and funny that I could never do it justice.
Eventually, database replication became reasonable and we salved our consciences by adding a hot spare database. We then told ourselves there were no longer any single points of failure. It was even true — for a few minutes.
> The problem with sharding a relational database by hand is that you no longer have a relational database. The API that orchestrates the sharding has in effect become your query language.
This was the point at which a lot of people took a deep breath, catalogued all the limitations and warts of their chosen implementation of SQL … and for some reason decided to blame SQL. A flood of hipster NoSQL appeared. They offered automatic sharding, flexible schemas, some replication… and not much else at first. But it was less painful than writing it yourself.
You know things are really desperate when “less painful than writing it yourself” is the main selling point.