DEV Community


Discussion on: Everything you need to know about NoSQL databases

dmfay profile image
Dian Fay

A few points in no particular order:

  • schemaless isn't a feature of all NoSQL databases (columnar stores require everything to be defined up front, for one example) and is very much a two-edged sword, since in real terms you always have a schema somewhere and if it isn't in the database, it's in the assumptions made by your application code. And if you aren't careful about managing this less-well-defined schema, changes can easily be an even bigger headache than with a relational db.
  • the idea that NoSQL databases simply require less care and feeding compared to relational dbs is debatable, to say the least. Once you've got enough data you have to pay attention to your database's operating parameters, no matter what you're running.
  • columnar databases are pretty different from relational databases under the hood. It's sort of inverted: instead of tables comprising a set of rows or tuples which have a value for each column, tables are a set of columns, each of which may or may not contain a value for a particular row key.
  • relational databases can absolutely handle good-sized workloads on commodity hardware. The difference, by comparison with NoSQL dbs, is that they have an easier time scaling up (bigger computer) vs scaling out (more computers).
  • relational databases have been getting better at working with un- or semi-structured data, with PostgreSQL's indexable binary JSONB datatype leading the pack. If you have a mix, fitting your unstructured data into a relational context is a lot easier and safer than trying to adapt your relational data into a NoSQL context.

I didn't see this on your list of resources, but it's a really good breakdown of the differences and appropriate use cases for a ton of different NoSQL databases :)

lmolivera profile image
Lucas Olivera Author

I really appreciate your comment. I'm going to edit the article with your keypoints, thank you very much!