Je reprends ici un article synthétique de Jenny Richards en anglais.
Un bon point de départ pour réfléchir aux avantages/inconvénients des bases relationnelles classiques et des bases No SQL.
The comparison between MongoDB, the poster child of NoSQL, and MySQL has been
raging for a while now. It is important that you know the difference between the
two as this will assist you in making an informed decision.
The Major Differences between MongoDB and MySQL
1. There is a difference in the representation of data in the two databases.
In MongoDB, data represents in a collection of JSON
documents while in MySQL, data is in tables and rows. JSON documents can compare
to associative arrays when using PHP and directory objects when using
Python.
2. When it comes to querying, you have to put a string in the query language
that the DB system parses. The query language is called Structured Query
Language, or SQL,from where MySQL gets its name. This exposes your DB
susceptible to SQL injectionattacks. On the other hand, MongoDB’s querying is
object-oriented, which means you pass MongoDB a document explaining what you are
querying. There is no parsing whatsoever, which will take some time getting used
to if you already use SQL.
3. One of the greatest benefits of relational databases like MySQL is the
JOIN operation. The operation allows for the querying across several tables.
Although MongoDB doesn’t support joints, it supports multi-dimensional data
types like other documents and arrays.
4. With MySQL, you can have one document inside another (embedding). You
would have to create one table for comments and another for posts if you are
using MySQL to create a blog. In MongoDB, you will only have one array of
comments and one collection of posts within a post.
5. MySQL supports atomic transactions. You can have several operations within
a transaction and you can roll back as if you have a single operation. There is
no support for transactions in MongoDB and the single operation is atomic.
6. One of the best things about MongoDB is that you are not responsible for
defining the schema. All you need to do is drop in documents. Any 2 documents in
a collection need not be in the same field. You have to define the tables and
columns before storage in MySQL. All rows in a table share the same columns.
7. MongoDB’s performance is better than that of MySQL and other relational
DBs. This is because MongoDB sacrifices JOINS and other things and has excellent
performance analysis tools. Note that you still have to index the data and the
data in most applications is not enough for them to see a difference. MySQL is
criticized for poor performance, especially in ORM application. However, you are
unlikely to have an issue if you do proper data indexing and you are using a
database wrapper.
8. One advantage of MySQL over NoSQL like MongoDB is that the community in
MySQL is much better than NoSQL. This is mostly because NoSQL is relatively new
while MySQL has been around for several years.
9. There are no reporting tools with MongoDB, meaning performance testing and
analysis is not always possible. With MySQL, you can get several reporting tools
that help you rove the validity of your applications.
10. RDBSs function on a paradigm called ACID, which is an acronym for
(Atomicity, Consistency, Isolation, and Durability). This is not present in
MongoDB database.
11. MongoDB has a Map Reduce feature that allows for easier scalability. This
means you can get the full functionality of MongoDB database even if you are
using low-cost hardware.
12. You do not have to come up with a detailed DB model with MongoDB because
of is non-relational. A DB architect can quickly create a DB without a
fine-grained DB model, thereby saving on development time and cost.
Source: http://www.analyticbridge.com/profiles/blogs/comparing-mongodb-with-mysql
Une petite comparaison entre MySQL et MongoDB
on June 25, 2015