Dmitri Melikyan extracts the following key points about the choice of SQL vs NoSQL for startups:
- Relational databases are not easily scalable. It will require a lot of efforts to build a scalable and redundant setup.
- Relational databases provide a very rich function set, which makes the application layer of the product simpler (as long as no performance requirements/problems exist)
- There are NoSQL data stores, which are scalable easily, but they are mainly key-value stores with a very limited function set.
- It is very easy to develop on schema-Âfree NoSQL databases, especially for fresh projects, but making data consistent from one release to another will require additional programming and tracking.
- On the other hand, altering of a schema in some relational databases, e.g. MySQL with millions of records will take time, which may lead to downtimes of the whole application.
Ideally, I'd encourage startups to architect in a way that allows use of different data stores for different features.
One small quibble... the "SQL doesn't scale" myth is just that, a myth. "Proper" SQL databases like Oracle or SQL Server, while expensive, can scale quite handily to enormous amounts of data. Most startups, even if extremely successful, will never grow to the Google-like scale that requires a NoSQL solution like BigTable.
Use what makes sense for your context, but don't underestimate the ability of SQL to scale.
If you read this far, you should follow me on twitter here.