re: MongoDB has no use case VIEW POST

FULL DISCUSSION
 

Really interesting to see the comments. People thinking that SQL databases bring problems, where there were built to solve problems, decades ago, such as: consistency, backups, numeric datatypes, multi-purpose model, flexibility, performance, easiness,... Something was probably completely messed-up in the Dev - DBA communication (and I admit it is mostly because of some DBAs attitude) for such misunderstanding.
Result: we are back to technologies from the 80's with unstructured, hierarchical, scattered, record-based storage and 3rd generation languages. Impossible to admin, monitor and backup, with databases of different technologies spread everywhere. Impossible to scale without throwing many cores and servers, with all the wasted CPU cycles to synchronize that.

A good read is "A Relational Model of Data for Large Shared Data Banks E. F. CODD" introduction. Relational and SQL were build to solve those problems thanks to abstraction of internal representation (logical view), flexible structure (DML and DDL),...

Interesting also to read the reasons why CERN (currently Petabytes of timeseries and logs all in relational database) chose relational database 40 years ago: easy access and evolution thanks to simple tables model. This choice has proven to be the right one for decades of growing data.

I'll not take all examples in those comments one by one, but read about SQL views, union all queries, online DDL, virtual columns,... With all those, the structure can evolve easily, online, on terabytes tables. The "UPDATE user SET name_crc=CRC32(name)" mentioned in the first comment is a really easy one. You don't need to physically change all rows. And even if you change them, just look at the CPU cycles and compare to the one-by-one document approach.

Reading at the comments here, I'm sorry that the relationship with your DBAs was so bad that it leads to a total rejection of all SQL databases. SQL is a DevOps language: same language for admin tasks, modeling, development tasks, and end-user ad-hoc queries. SQL databases are there to ease the development and evolution of database applications, with guaranteed persistence (backups) and sharing (ACID) of data - even for terabytes, and manipulated by thousand of concurrent users.

code of conduct - report abuse