Just a few short years ago, MySQL was the undisputed king of the open-source database hill. But, today, non-relational, “cloud,” or “NoSQL” databases are gaining mindshare as an alternative model for database management, with its market emerging at an 82% compound annual growth rate.
NoSQL recently received quite a positive bump when Twitter announced it was moving from MySQL to the Java-based NoSQL Cassandra database. Among most popular NoSQL databases are: Cassandra, CouchDB, HBase, MongoDB, and Redis. Twitter isn’t the only one to be using NoSQL. Other notable sites using various types of NoSQL implementations are Facebook, and Rackspace, Digg ,Disney, Forbes, foursquare and MTV.
The term “NoSQL” was coined back in 1998, and it originally stood for Not Only SQL. So the name NoSQL is a bit of a misnomer. NoSQL began its life as an alternative form of structured data storage. Today’s NoSQL databases are distributed data stores that are designed for very large-scale data access requirements.
So as you see from the examples of companies that are using NoSQL, NoSQL databases are fast becoming popular for web apps because of the simplicity and scalability they provide as compared to regular relational databases. This is especially helpful when designing social networking apps because of the sheer amount of data that needs to be processed and served.
Key advantages of using NoSQL database are:
1. Flexible key/value store – This makes reading and writing data super-fast.
2. Schema less – This makes then a great fit for non-structured or semi-structured data.
3. High Scalability – Most NoSQL databases are designed from ground up to run on multiple servers, which makes partitioning and hence scaling for higher loads much easier compared to regular relations databases.
But of course, you will never find an ideal tool and everything comes with a cost. NoSQL databases sacrifice a little bit on consistency in favor of scalability and latency. So, they turn out to be not a good choice for mission critical data, like banking, stock markets, or any other financial institutions.
All pros and cons should be taken into consideration while choosing what technology to use. Also different approaches can be combined together. Depending on the app, we can either choose to store all data in a NoSQL database or store just transient data like status updates, comments, notifications, etc.
NoSQL databases are becoming an increasingly important part of the database landscape, and when used appropriately, can offer real benefits. However, enterprises should proceed with caution with full awareness of the legitimate limitations and issues that are associated with these databases. What are your thoughts on NoSQL database? Do you use it in your business? Will be interesting to know your thoughts.