DEV Community

Neha Sharma
Neha Sharma

Posted on • Edited on

9 1

How to pick your database

One of the most asked question for system design is - "Which storage mechanism/database you will pick for the problem?"

If you are going to answer that I know X database. Hence, I would like to go with X, it would be a WRONG answer.

Neither you should be talking in terms of any database brand/name. Infact the correct way is to talk about the type of the database. Eg: Relational, document, graph etc.

Now, the question comes how one can pick the database. So, here is a short summary which can help you to take decision:

Schema Schemaless or strict Schema
Type What type of problem are we solving and what type of database is it?
Transaction Is transaction integrity required or not?
Performance How is the performance of the DB for Read and Write operations
Scalability Is the database scalable and what would be the cost of it? Eg: Mongo, MySQL or Postgres supports scalability by DB partitioning and sharding
Opensource Is the database open-source vendor locked? MySQL is OS, and Aurora, or DynamoDB are vendor locked (AWS)
USP What is the unique feature of the database? Eg: Document-based DBs are easier to scale due to sharding, and Aurora is highly performant.
How you talk to DB Which programming language a database is using. Eg: Relation MySQL uses SQL.

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (2)

Collapse
 
margo_hdb profile image
Margo McCabe

Aways an interesting topic! This article might also be useful in expanding upon the points you made: Database Architectures & Use Cases

Collapse
 
hellonehha profile image
Neha Sharma

Thank you Margo for your kind words. Loved the blog you have shared (I just give it a quick read) and saved it for for later read.

The best way to debug slow web pages cover image

The best way to debug slow web pages

Tools like Page Speed Insights and Google Lighthouse are great for providing advice for front end performance issues. But what these tools can’t do, is evaluate performance across your entire stack of distributed services and applications.

Watch video

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, valued within the supportive DEV Community. Coders of every background are welcome to join in and add to our collective wisdom.

A sincere "thank you" often brightens someone’s day. Share your gratitude in the comments below!

On DEV, the act of sharing knowledge eases our journey and fortifies our community ties. Found value in this? A quick thank you to the author can make a significant impact.

Okay