NoSQL databases have emerged as a leading new data storage technology. But they're not perfect. Here's a look at the limitations and drawbacks of NoSQL storage.
To be sure, NoSQL offers a lot of advantages over traditional data storage techniques. But NoSQL is not a uniformly better storage solution.
SQL-style storage systems, like MySQL, come out ahead in some contexts. In others, there's not yet any ideal storage platform.
So what exactly are the drawbacks of NoSQL storage? They include...
Providing perfect data security is a challenge on any platform. But NoSQL databases are generally subject to a fairly long list of security issues. Most of them will likely be solved in time (some already have been solved on certain NoSQL platforms) as NoSQL continues to mature. But for now, security is a limiting factor for NoSQL deployment.
Most NoSQL databases do not perform ACID transactions, a tried and true technique for ensuring that data remains consistent across the entire database as it is moved around. Instead, NoSQL relies on the principle of "eventual consistency." This provides some performance advantages, but it poses the risk that data on one database node may go out of sync with data on another node.
Some NoSQL implementations, like FoundationDB, try to provide the best of both worlds by doing ACID-like transactions while retaining the fluidity of NoSQL design. But in general, data consistency remains a fundamental challenge for NoSQL.
Lack of Standardization
NoSQL is not a specific type of database or programming interface. The design and query languages of NoSQL databases vary widely between different NoSQL products -- much more widely than they do among traditional SQL databases.
This isn't an inherent design flaw. It means, however, that the learning curve for NoSQL databases is steeper, since a programmer who knows one type of NoSQL database may not be prepared to work with a different one. For organizations keen to maximize the usefulness of staff expertise, this is a barrier to NoSQL adoption.
NoSQL databases were designed when cloud computing and server clusters were already the de facto standard. So you'd think they'd be able to scale seamlessly.
In many respects, they can. But there are still scalability challenges. For example, not all NoSQL databases are good at automating the process of sharding, which means spreading a database across multiple nodes. If a database can't shard automatically, it can't scale up or down automatically in response to fluctuating demand.
SQL databases are subject to these same sorts of problems. In many ways, in fact, SQL is even worse at scaling than most NoSQL databases. Still, the fact that NoSQL is not completely scalable in all situations constitutes another hurdle, especially as the DevOps revolution makes the rest of the software stack more scalable than ever.
In evaluating the limitations of NoSQL databases, it's important to bear in mind that the NoSQL world is a diverse ecosystem. Not all NoSQL storage products are subject to all drawbacks to the same extent. And that's a good thing, since it means that organizations have a lot of options when weighing the pros and cons of different NoSQL solutions in order to decide which one is best for their specific needs.