NoSQL is a non-relational database that stores and accesses data using key-values. Instead of storing data in rows and columns like a traditional database, a NoSQL DBMS stores each item individually with a unique key. Additionally, a NoSQL database does not require a structured schema that defines each table and the related columns. This provides a much more flexible approach to storing data than a relational database.
While relational databases (like MySQL) are ideal for storing structured data, their rigid structure makes it difficult to add new fields and quickly scale the database. NoSQL provides an unstructured or "semi-structured" approach that is ideal for capturing and storing user generated content (UGC). This may include text, images, audio files, videos, click streams, tweets, or other data. While relational databases often become slower and more inefficient as they grow, NoSQL databases are highly scalable. In fact, you can add thousands or hundreds of thousands of new records to a NoSQL database with a minimal decrease in performance.
Because of NoSQL's flexibility and scalability, many large businesses and organizations have begun using NoSQL databases to store user data. They are especially common in cloud computing applications and have become a most popular storage solution for big data.
NOTE: NoSQL is sometimes referred to as "Not only SQL," though it is not the official meaning of the term.