In the current enterprise IT architecture, system administrators and DBAs will consider using NoSQL databases to solve problems that RDBMS cannot solve, especially in the Internet industry. Traditional relational databases mainly store data in the form of tables, and cannot cope with the challenge of unstructured data. In the process of data standardization, the performance of relational database encountered a bottleneck.
NoSQL, as its name implies, is Not-Only SQL, and it can be used as a good complement to relational databases. In the previous report of TechTarget database, we also gave a detailed introduction to the application scenarios of NoSQL database. NoSQL is not like a traditional relational database. It has a wide range of types, and each has its own advantages and disadvantages. How to distinguish the differences from each other is a headache for the DBA. In this article, we will further accept for you the classification of NoSQL databases and their respective advantages and disadvantages.
Four major families of NoSQL databases
- Key-Value storage database
This type of database mainly uses a hash table, in which there is a specific key and a pointer to specific data. The advantage of the Key/value model for IT systems lies in its simplicity and ease of deployment. However, if the DBA only queries or updates part of the value, the key/value becomes inefficient.
Related databases |
Tokyo Cabinet/Tyrant, Redis, Voldemort, Berkeley DB |
Typical applications |
Content caching, suitable for mixed workloads and expanding large data sets |
Data Model td> |
A series of key-value pairs |
Advantages |
Quick query |
Disadvantages |
< p>The stored data lacks structure |
- Column storage database
This part Databases are usually used to deal with massive amounts of data in distributed storage. The keys still exist, but their characteristic is that they point to multiple columns. These columns are arranged by the column family.
Related databases |
Cassandra, HBase, Riak |
Typical applications |
< p>Distributed file system |
Data model |
Column cluster storage, storing the same column data together |
Advantages |
< p>The search speed is fast, the scalability is strong, and the distributed expansion is easier |
Disadvantages |
Relatively limited functions |
- Document database
The document database is inspired by Lotus Notes office software, and it is similar to the first type of key-value storage. This type of data model is a versioned document, and semi-structured documents are stored in a specific format, such as JSON. The document database can be regarded as an upgraded version of the key-value database, allowing nesting of key-values between them. Moreover, the query efficiency of a document database is higher than that of a key-value database.
Related databases |
CouchDB, MongoDB |
Typical applications |
Web application |
Data model |
A series of key-value pairs< /p> |
Advantages |
The data structure requirements are not strict < /td> |
Disadvantages |
The query performance is not high, and it lacks a unified query syntax |
- Graph database
Database of graph structure is the same as that of other ranks and rigid structures SQL database is different. It uses a flexible graphical model and can be extended to multiple servers. NoSQL database does not have a standard query language (SQL), so database queries need to develop a data model. Many NoSQL databases have REST-style data interfaces or query APIs.
Related databases |
|
Typical applications td> |
Social networks, recommendation systems, etc. Focus on building relationship graphs |
Data model |
< p>Picture structure |
Strengths |
Use graph structure related algorithms. |
Weakness |
The entire picture The results can only be obtained by calculation, and it is not easy to make a distributed cluster solution. |
Therefore, we conclude that NoSQL databases are more suitable in the following situations: 1. The data model is relatively simple; 2. The need A more flexible IT system; 3. Higher database performance requirements; 4. No need for a high degree of data consistency; 5. For a given key, it is easier to map an environment with complex values.