Home » Software Development » MongoDB » MongoDB vs MySQL Example

About Yatin Batra

Yatin Batra
Yatin has graduated in Electronics & Telecommunication. During his studies, he has been involved with a large number of projects ranging from programming and software engineering to telecommunications analysis. He works as a software developer in the information technology sector where he is mainly involved with projects based on Java and J2EE technologies platform.

MongoDB vs MySQL Example

1. Introduction

These days, when it comes the time to select a database, one of the toughest decision for the developers is picking a relational or a non-relational database. While both are achievable alternatives, there are definite differences that developers must keep in mind when making a conclusion. In this tutorial, we will learn the important differences between the MongoDB and the MySQL databases.

1.1 What is MongoDB?

  • MongoDB is a high-performance NoSQL database where each dB has collections which in turn has the key-value pairs, known as documents
  • Each document has a different number of fields, size, and content. Each documentation in MongoDB is stored in a JSON-like format (i.e. Binary JSON (BSN))
  • The documents in MongoDB doesn’t need to have a schema defined beforehand. Instead, the fields (i.e. records) can be created on the go
  • Data model available within the MongoDB allows developers to represent hierarchical relationships, store arrays, and other more complex structures more easily
  • This NoSQL solution often comes with embedding, auto-sharding, and onboard replication for better scalability and high availability
Fig. 1: Data representation in MongoDb

Fig. 1: Data representation in MongoDB

1.2 What is MySQL?

  • It is a Relational Database Management System (RDBMS) that use the Structured Query Language (SQL),
    • To implement a database with columns, records, and indexes that provide the non-structured data
    • Offers data integrity between the rows and the tables
    • Support query caching, ACID transactions, and joins
    • Provides data access to the users by using host and query languages
Fig. 2: Data representation in MySQL

Fig. 2: Data representation in MySQL

The comparison between MongoDB and MySQL has been engaged for a while and it is important for developers to understand the differences between these two.

2. MongoDB vs. MySQL

Let’s see the fundamental differences between the relational and the non-relational databases.

  • The primary difference between these two databases is the data representation. In MongoDB, data is represented as a collection of JSON-like documents while in MySQL, the data is represented in tables, rows, and columns
  • MySQL supports the “Structured Query Language” to query a string in the database system, while MongoDB supports the object-oriented querying. Thus MongoDB offers no SQL injection attacks or parsing
  • One big picture difference is that; MySQL supports the JOIN operation to allow querying across multiple tables, while MongoDB provides multi-dimensional documents
  • MySQL supports several operations within a single atomic transaction and offers the rollback facility, while in MongoDB there is no support for transactions
  • One best thing about MongoDB is that developers are not responsible to define a schema beforehand and the records can be created on the fly. In MongoDB, any two collections need not have the same fields, while in MySQL all the rows in a table share the same columns
  • MongoDB’s performance is better than the relational databases as this NoSQL database dispense the JOIN operations and other things that can impact the performance
  • One advantage of MongoDB over MySQL is that MongoDB provides the rapid development and agile sprints i.e. NoSQL data doesn’t need to be prepped ahead of time
  • RDBMS databases offer the Atomicity, Consistency, Isolation, and Durability and this is not present in the MongoDB database
  • MongoDB allows for easier scalability through the Map Reduce feature. This means developers can get the complete functionality even if they are using the low-cost hardware
  • Relational databases offer several reporting tools to authenticate the application’s validity while there are no such reporting tools with the MongoDB
  • MongoDB offers a non-relational database model as the DB architect can easily create a database without a pulverized DB model, thereby saving the development time and cost
  • MySQL is an extremely established database offering huge community, extensive testing, and stability while MongoDB is still in development phase

2.1 How are their Queries different?

The following commands show how the queries are different in the relational and the non-relational databases.

2.1.1 Selecting records from the student table

The following code shows how this can be done in MongoDB and MySQL databases.

MongoDB

db.student.find().pretty();

MySQL

SELECT * from student;

2.1.2 Inserting records into the student table

The following code shows how this can be done in MongoDB and MySQL databases.

MongoDB

db.student.insert({ stu_id: 'stu101', stu_branch: 'Science', stu_status: 'Active' });

MySQL

INSERT INTO student (stu_id, stu_branch, stu_status) VALUES ('stu101', 'Science', 'Active');

2.1.3 Updating records in the student table

The following code shows how this can be done in MongoDB and MySQL databases.

MongoDB

db.student.update({ stu_age: { $gt: 15 } }, { $set: { stu_branch: 'Commerce' } }, { multi: true });

MySQL

UPDATE student SET stu_branch = 'Commerce' WHERE stu_age > 15;

2.2 So Which Database Is Right for Your Business?

Here’s a quick cheat sheet to get you familiar with the MySQL and MongoDB features.

#MySQLMongoDB
Use CaseMySQL is a recommended choice for any application that has a pre-defined structure and set schemas i.e. applications that need the multi-row transactions.MongoDB offers rapid growth or the databases with no clear schema definitions. Thus, it is a good choice for content-management, internet of things, mobile applications etc.
Data StructureMySQL offers a clear and well-defined schema and supports the structured data.MongoDB doesn’t need to have a schema defined beforehand and thus the records can be created on the fly.
RiskRisk of SQL injection attacks.Less risk of attack due to modular design.
AnalysisGreat choice if the application has structured data and needs a traditional relational database.Great choice if the application has unstructured and/or structured data with the potentially rapid growth.

That’s all for this post. Happy Learning!!

3. Conclusion

So, which is the better option? The answer lies in the type of data application have, but more and more people are going the NoSQL way. I hope this article served you whatever you were looking for.

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!

 

1. JPA Mini Book

2. JVM Troubleshooting Guide

3. JUnit Tutorial for Unit Testing

4. Java Annotations Tutorial

5. Java Interview Questions

6. Spring Interview Questions

7. Android UI Design

 

and many more ....

 

Receive Java & Developer job alerts in your Area

 

Leave a Reply

2 Comments on "MongoDB vs MySQL Example"

avatar
  Subscribe  
newest oldest most voted
Notify of
Vladimir
Guest

A great comparison! Thank you!