So while researching the tech stack for a new open source application I plan to build, I came to the age old question…
Which database should I use?
Should I go the traditional SQL route with MySQL or the new favourite: PostgreSQL? Or should I eschew the familiarities of SQL and go with NoSQL and MongoDB?
It’s a tough question to answer, and there are times when one is better suited than the other.
But of late, I have been favouring MongoDB for pretty much everything. I use it in my day job, and have used it in several other projects before and since.
- It’s easy to install and setup.
- I don’t have to create tables and columns to define my database structure. It’s hugely dynamic!
- I can change its structure without requiring any migration or downtime that can sometimes be required when you change table and column metadata in SQL databases.
- It scales very easily, thanks to its awesomely simple ReplicaSets and sharding.
- I don’t have to remember complex SQL language and constructs (left-join, right-join, left-inner-join, blah, blah).
Yes of course it has its cons and SQL has it’s pros, but I just feel far more comfortable and safe in the knowledge of the above points.
So once I decided on MongoDB, my next question became:
Is it bad that I don’t like SQL anymore?
And you know what? I have no idea, but I kind of enjoy that thought!