When people are comparing SQL and noSQL, and concluding the upsides and downsides of each one, what I never hear anyone talking about is the speed.
Isn't performing SQL queries generally faster than performing noSQL queries?
I mean, for me this would be a really obvious conclusion, because you should always be able to find something faster if you know the structure of your database than if you don't.
But people never seem to mention this, So I have decided to go with this writeup it would help everyone to select best database in the war between SQL vs NoSQL Databases.
SQL Databases
|
NoSQL Databases
|
SQL databases are primarily called as Relational
Databases (RDBMS
|
NoSQL database are primarily called as non-relational or
distributed database.
|
SQL databases are table based databases,
|
NoSQL databases are document based, key-value pairs, graph databases or
wide-column stores.
|
SQL databases represent data in form of tables which
consists of n number of rows of data
|
NoSQL databases are the collection of key-value pair, documents,
graph databases or wide-column stores which do not have standard schema
definitions which it needs to adhere to.
|
SQL databases have predefined schema
|
NoSQL databases have dynamic schema for unstructured data.
|
SQL databases are vertically scalable; they are scaled by
increasing the horse-power of the hardware.
|
NoSQL databases are horizontally scalable; these databases
are scaled by increasing the databases servers in the pool of resources to
reduce the load.
|
SQL databases use SQL (structured query language) for
defining and manipulating the data, which is very powerful.
|
NoSQL database, queries are focused on collection of documents.
Sometimes it is also called as UnQL (Unstructured Query Language). The syntax
of using UnQL varies from database to database.
|
SQL database examples:
MySql, Oracle, Sqlite, Postgres and MS-SQL.
|
NoSQL database examples: MongoDB, BigTable, Redis,
RavenDb, Cassandra, Hbase, Neo4j and CouchDb
|
For complex queries:
SQL databases are good fit for the complex query
intensive environment
|
NoSQL databases are not good fit for complex queries. On a high-level,
NoSQL don’t have standard interfaces to perform complex queries, and the
queries themselves in NoSQL are not as powerful as SQL query language.
|
For the type of data to be stored:
SQL databases are not best fit for hierarchical data
storage
|
NoSQL database fits better for the hierarchical data
storage as it follows the key-value pair way of storing data similar to JSON
data. NoSQL database are highly preferred for large data set (i.e for big
data). Hbase is an example for this purpose.
|
For scalability:
In most typical situations, SQL databases are vertically
scalable. You can manage increasing load by increasing the CPU, RAM, SSD,
etc, on a single server.
|
NoSQL databases are horizontally scalable. You can just add few more
servers easily in your NoSQL database infrastructure to handle the large
traffic.
|
For high transactional based application:
SQL databases are best fit for heavy duty transactional
type applications, as it is more stable and promises the atomicity as well as
integrity of the data.
|
You can use NoSQL for transactions purpose; it is still
not comparable and sable enough in high load and for complex transactional
applications.
|
For support:
Excellent supports are available for all SQL database
from their vendors. There are also lot of independent consultations who can
help you with SQL database for a very large scale deployments.
|
For some NoSQL database you still have to rely on community support, and
only limited outside experts are available for you to setup and deploy your
large scale NoSQL deployments.
|
For properties:
SQL databases emphasizes on ACID properties ( Atomicity,
Consistency, Isolation and Durability)
|
NoSQL database follows the Brewers CAP theorem (
Consistency, Availability and Partition tolerance )
|
For DB types: On a high-level, we can classify SQL
databases as either open-source or close-sourced from commercial vendors
|
NoSQL databases can be classified on the basis of way of storing data as
graph databases, key-value store databases, document store databases, column
store database and XML databases.
|
No comments:
Post a Comment