New requirements for database in new application
-Low latency under high concurrency for Read and write requests
-Effective big data storage and access requirements (PB level)
-High scalability and high availability
-smaller administrative and operational costs
Limitations of traditional relational databases
-Due to the logical complexity of the relational database, a lot of deadlock or concurrency problems occur as the data size increases, which slows down the reading and writing speed.
-Capacity limitations, traditional databases cannot handle big data
-Multi-table association mechanism makes database extension very difficult
Characteristics of NoSQL databases
-Read and write quickly
-Supports high-capacity storage
-Easy to expand
-Low cost
SQL that does not support industry standards
Lack of transaction mechanism
Data model of NoSQL database
-key-value: Value and key binding
-Column-oriented data: 1. The data is stored in columns. 2. Each column of the data is the index of the database. etc
-Document database: The value of the document database is semantic and stored in JSON alive XML format.
Cap theory
A distributed database cannot meet these three principles at the same time, only two of these
-Database to meet CP: mongodb,redis,hbase,bigtable, etc.
-Database to meet AP: Simpledb,kai, etc.
-Meeting CA data: Typically a traditional relational database, Vetica (column-oriented) data.
Mainstream NoSQL Database
-key-value:redis, in-memory database, when the database instance is running, the data is fully read into memory, so it is very fast. Tokyo Cabinet-tokyo Tyrant, multi-threaded high-performance reading and writing, while guaranteeing reliability.
-Columnstore-oriented database: Although the traditional database is not de-stored in rows, the column database is also high-performance. Cassandra:facebook's Open source distributed database. Hypertable.
-Document database: Does not care about high-performance read-write operations, but satisfies a large number of data storage and good query performance. MongoDB: A NoSQL database that most closely resembles a traditional relational database. COUCHDB: Use the rest interface to provide only the rest interface.
-Graph database: neo4j.
Survey on Nosql Database notes