About NoSQL
1.1 System-to-data requirements
Nosql[nosql main use Big data processing] all called "Not only SQL", for non-relational database [non-relational database is a relational database all features are not, the primary foreign key, constraints are not, SQL statements are not. ]。 The main features of this type of database are:
Non-relational, distributed, open-source, horizontally scalable. The most typical application for NoSQL is Key-value storage. The most important use of nosql is the processing of big data, which has serious system bottlenecks in traditional relational databases, and the birth of NoSQL is a good solution to this problem.
Traditional databases in the face of web2.0 websites, especially ultra-large and high-concurrency sites, a lot of leaks out of the problem.
1, high performance (the need to read and write to the database)
Because Web2.0 's website is to generate dynamic pages and provide dynamic information in real-time based on the needs of the users, it is largely impossible to use page caching techniques. Therefore, the database has a particularly high concurrency load. So to deal with tens of thousands of concurrent read and write requests, the traditional database is a bit too weak.
2. High Storage (efficient storage and access to massive data)
For some large-scale website, every day to generate a huge amount of information, to foreign Fack book for example, each month to reach 240 million data, for the relational database, a table to store 250 million of data, and then to its query, its efficiency is extremely low.
3. High Scalability&&high availability (highly scalable and high availability requirements)
In a web structure, the database is difficult to scale horizontally. When the number of users and traffic in a system grows particularly large, you have no way to extend performance and load capabilities by simply adding hardware and service nodes like Web service. Data migration is often a matter of
is more painful for many DBAs.
1.2 Disadvantages of relational databases
1, for the massive data, the relational database for real-time this is difficult to do, if you want to do, you must increase the database server, and the database server has a lot of files, such as: Control files, data files, log files and so on. In particular, the structure of the control file is particularly complex, the increase of the server involves backing up the database, this work will be very large. And sometimes, you need to involve adding hardware. This requires a lot of money.
2, relational database once read, need to consume a lot of resources. For example: Connect the database First, then open the session, and then send the request is the SQL statement. Parsing SQL statements inside the database is also a complex process. It is very difficult to achieve high efficiency for relational database if we meet the requirement of reading and writing data of one-time mass.
1.3Nosql Features
Can handle very large amounts of data, can run on the P machine, the query process will not produce SQL, can reduce the parsing of SQL, and NoSQL open source. MongoDB is not installed, is a folder, copy can. NoSQL things are very weak in their support.
1. Can handle very large amount of data
2, can run on the cheap PC, the cost is relatively low
3, in the process of querying, there is no SQL statement, so reduce the database parsing SQL statements, this link has not, greatly improved the performance of the system.
4. NoSQL products are open source. We can understand the bottom of the story clearly. [Open source does not have a business guarantee, which is the difference between nosql. The biggest application of Hadoop is the internet market. ]
Note: There is no transaction rollback mechanism to easily lose data.
Reprint Please specify: http://www.xujin.org or http://www.virgocloud.com
Original MongoDB's NoSQL Introduction