During my university years, while studying computer science, I never used NoSQL or similar technologies like MongoDB or CouchDB.

Everyone was jumping on the bandwagon of NoSQL and I kept on the SQL side.

Doing so enabled me to become a better developer.

MySQL

MySQL was the first technology I used to start building databases, it was the only Database used in my high school and also for most of my university exams. It’s open-source, but is owned by Oracle and offers commercial versions for enterprise companies. Most of PHP hosting services always used this database for all of its users, I was one of them using phpMyAdmin to access or modify my database structure like a “real” engineer.

How much time has passed since you use this the last time? For me more than 4 years!

PostgreSQL

In the previous months while I was working I had to use a product that was powered by a new SQL engine I never heard of, PostgreSQL.

PostgreSQL looked familiar to my old beloved MySQL but it looked like a more free and wild version of it, with fewer limits and more freedom!

This would be the MySQL experience you might have if Oracle locks you up preventing you to use their DB for your buisness!

The logo of PostgreSQL with his cute Elephant looked strong and most importantly it’s 100% open-source, all of it without exceptions!

Its code is also on Github!

The other great power of this database system is the community of projects or extensions like PostGIS, to add Spatial and Geographic objects to PostgreSQL, which are giving much more power and innovation to this DB engine than many of its competitors.

GraphQL with PostgreSQL

GraphQL is an open-source data query and manipulation language for APIs that is drastically speeding up the development of the system by solving many problems of the handling of data

PostgreSQL has the secret sauce if you want to combine your Postgres DB with GraphQL, here it is Hasura an Instant realtime GraphQL for PostgreSQL!

It automatically converts your database in a real-time GraphQL API connected to your DB schemas, types, enums and data.

Big Data with PostgreSQL

Time-Series Database Management System is optimized for storing and serving time series through associated pairs of time and value.

This trend is the fastest type of Database that is growing each month cause handling Big Data with a time-series system drastically improves the speed or ways to handle and get insights from the NoSQL systems.

TimescaleDB is a time-series SQL database developed as a transparent extension on top of PostgreSQL.

With TimescaleDB you will be able to write millions of data points per second or storing 100s of billions of rows and 10s of terabytes of data getting faster than MongoDB or other NoSQL time-series systems!

English of Databases

I think that SQL is like English!

It’s the single language all relation database should understand.

It’s taught to an infinite amount of student and it’s used with software all around the world.

If you learn to use SQL you will learn a standard that will work even in 10 or 20 years.

Other NoSQL technologies tend to use custom languages or try to mimic with some flavor SQL without fully implementing it, you will spend time learning specific languages and when they will be discontinued or when you will change NoSQL stack you will have to learn many new words or procedures.

With SQL you will be focused always on the same Standard, one language to rule all the SQL database systems.

Why I didn’t use MongoDB

I will stay on the SQL side and I won’t jump on the NoSQL side in the future, I will try to use PostgreSQL combined with Hasura to real-time projects and if I will need to manage huge amounts of data I will try TimescaleDB.

By choosing to not start to learn another topic like NoSQL or MongoDB I’ll remain more productive focusing on the power of the entire SQL ecosystem!

Have you considered NoSQL too or are you going to remain on the SQL island like me or try to explore new uncharted territories in the NoSQL land?

What can you learn from this?

Sometimes by focusing and what you already know, without changing completely the paradigm of the things you know, just by adding specific improvements or layers you will get much better than trying to use and learn an entirely new topic or technology disconnected from your past.

References and Resources