Key-Value (Key-Value) storage database
This type of database A hash table is mainly used. This table has 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. But if the DBA only queries or updates part of the value, the key/value becomes inefficient. For example: Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
Column storage database
this Part of the database is usually used to deal with the massive data of distributed storage. The keys still exist, but their characteristic is that they point to multiple columns. These columns are arranged by the column family. Such as: Cassandra, HBase, Riak.
document database
document database is inspired by Lotus Notes office software, and it is similar to the first key-value store. 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. Such as: CouchDB, MongoDb. There is also a document database SequoiaDB in China, which has been open sourced.
Graph database
The graph structure database is different from other ranks and rigid structure SQL databases , 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. Such as: Neo4J, InfoGrid, Infinite Graph.
Comparison of several NoSQL databases:
Key-value:
Database example: Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB
Application scenarios: Content caching is mainly used to handle high access loads of large amounts of data, and is also used in some log systems and so on.
data model: Key points to the key-value pairs of Value, usually implemented by hash table.
Advantages: fast search speed
Disadvantages: data is unstructured and usually can only be treated as string or binary data
Column storage database:
Database examples: Cassandra, HBase, Riak
Application scenario: Distributed file system
Data model: Column cluster storage, storing the same column data together
Advantages: fast search speed, strong scalability, and easier distributed expansion
Disadvantages: relatively limited functions
Document database:
Database example: CouchDB, MongoDb
Application scenario: Web application (similar to Key-Value, Value is structured, the difference is that the database can understand the content of Value)
Data model: Key-Value corresponding key-value pair, Value is structured data
< div class="para"> advantages: not strict, the table structure is variable, no need to pre-define the table structure like a relational database
disadvantages: query performance is not high, and lack Unified query syntax.
Graph database:
Database examples: Neo4J, InfoGrid, Infinite Graph
Application scenarios: social networks, recommendation systems, etc. Focus on building relational graphs
data model: graph structure
advantage: use graph structure related algorithms. Such as shortest path addressing, N degree relationship search, etc.
Disadvantages: In many cases, the entire graph needs to be calculated to get the required information, and this structure is not good for distributed The cluster scheme.
Key-Value (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. But if the DBA only queries or updates part of the value, the key/value becomes inefficient. For example: Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
Column storage database
This part of the database is usually used to deal with distributed storage Of massive data. The keys still exist, but their characteristic is that they point to multiple columns. These columns are arranged by the column family. Such as: Cassandra, HBase, Riak.
Document database
The document database is inspired by the Lotus Notes office software, and it is the same A key-value store is similar. 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. Such as: CouchDB, MongoDb. There is also a document database SequoiaDB in China, which has been open sourced.
Graph database
The graph structure database is different from other ranks and rigid structure SQL databases. It uses a flexible graph 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. Such as: Neo4J, InfoGrid, Infinite Graph.
Comparison of several NoSQL databases:
Key-value:
Database example: Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB
Application scenario: content caching, mainly used for processing large amounts of data with high access load, and also used in some logging systems and so on.
Data model: Key points to the key-value pair of Value, usually implemented by hash table.
Advantages: Fast search speed
Disadvantages: The data is unstructured and can usually only be treated as string or binary data
Column storage database:
p>
Database example: Cassandra, HBase, Riak
Application scenario: Distributed file system
data model: stored in clusters of columns, storing the same column of data together
advantages: fast search speed, strong scalability, and easier distributed expansion
Disadvantages: relatively limited functions
Document database:
Database example: CouchDB, MongoDb
Application scenario: Web application (similar to Key-Value, Value is structured, the difference is that the database can understand the content of Value)
data model: Key-Value corresponds to the key-value pair, Value is structured data
Advantages: not strict, the table structure is variable, no need to look like Relational databases also need to define the table structure in advance
Disadvantages: query performance is not high, and lack of unified query syntax.
Graph database:
Database examples: Neo4J, InfoGrid, Infinite Graph
Application scenarios: social networks, recommendation systems, etc. Focus on building relational graphs
data model: graph structure
advantage: use graph structure related algorithms. Such as shortest path addressing, N degree relationship search, etc.
Disadvantages: In many cases, the entire graph needs to be calculated to get the required information, and this structure is not good for distributed The cluster scheme.
Database example: Cassandra, HBase, Riak
Application scenario: Distributed file system
Data Model: Column-cluster storage, storing the same column of data together
Advantages: fast search speed, strong scalability, and easier distributed expansion
Disadvantages: relatively limited functions
Document database:
Database example: CouchDB, MongoDb
Application scenario: Web application ( Similar to Key-Value, Value is structured, the difference is that the database can understand the content of Value)
Data model: Key-Value corresponding key-value pair, Value is structured Data
Advantages: not strict, the table structure is variable, no need to pre-define the table structure like a relational database
Disadvantages: query The performance is not high, and it lacks a unified query syntax.
Graph database:
Database examples: Neo4J, InfoGrid, Infinite Graph
Application scenarios: social networks, recommendation systems, etc. Focus on building relational graphs
data model: graph structure
advantage: use graph structure related algorithms. Such as shortest path addressing, N degree relationship search, etc.
Disadvantages: In many cases, the entire graph needs to be calculated to get the required information, and this structure is not good for distributed The cluster scheme.
Database example: CouchDB, MongoDb
Application scenario: Web application (similar to Key-Value, Value is structured, the difference is database Able to understand the content of Value)
Data model: Key-Value corresponding key-value pair, Value is structured data
Advantages: not strict, the table structure is variable, no need to Relational databases also need to define the table structure in advance
Disadvantages: query performance is not high, and it lacks a unified query syntax.
Graph database:
Database example: Neo4J, InfoGrid, Infinite Graph
application Scenario: social network, recommendation system, etc. Focus on building relational graphs
data model: graph structure
advantage: use graph structure related algorithms. Such as shortest path addressing, N degree relationship search, etc.
Disadvantages: In many cases, the entire graph needs to be calculated to get the required information, and this structure is not good for distributed The cluster scheme.
Database examples: Neo4J, InfoGrid, Infinite Graph
Application scenarios: social networks, recommendation systems, etc. Focus on building relational graphs
Data model: graph structure
Advantages: use graph structure related algorithms. For example, shortest path addressing, N-degree relationship search, etc.
Disadvantages: In many cases, the entire graph needs to be calculated to obtain the required information, and this structure is not good for a distributed cluster solution.