In a relational database, the most important factors leading to poor performance are multi-table associative queries and complex SQL report queries with complex types of data analysis.
to ensure the ACID properties of the database (acid: securely stores the right data
Quickly retrieve the right data
Support for multiple concurrent user sessions),
we must try to design according to its required paradigm, the tables in the relational database are stored in some formatted data structures, and each tuple field is the same, even if not all of the fields are required for each tuple, but the database assigns all the fields to each tuple. Such a structure makes it easy to connect between tables and tables, but it is also a factor in the performance bottleneck of relational databases from another perspective.
non-relational database put forward another idea, he stored with key value, and the structure is not fixed, each tuple can have a different field, each tuple can add some of their own key value pairs as needed, so that it is not limited to fixed structure, can reduce some time and space overhead. In this way, users can add the fields they need as needed, so that in order to get different information of the user, it is not necessary to query the multi-tables in the relational database. The query can be completed only by taking the corresponding value out of the ID. But the non-relational database, because of its very few constraints, is not able to provide a query that SQL provides where this is the case for field property values. And it is difficult to embody the integrity of the design. He is only suitable for storing some simpler data, and SQL database is more appropriate for data that requires more complex queries.
There are no fewer than 25 nosql (not just SQL, non-relational) databases, except Dynamo, BigTable and many more, such as Amazon's SimpleDB, Microsoft's azuretable, Facebook uses Cassandra, Class BigTable hypertable, HBase for Hadoop, MongoDB, CouchDB, Redis, and Yahoo! 's pnuts and more. These NoSQL features are developed based on different application scenarios, with MongoDB and Redis being the most sought after.
The difference between relational database and non-relational database