Table Of Contents
- 1. Introduction
- 2. The dominance of RDBM systems
- 3. A new era of NoSQL movement
- 4. Tables vs Documents vs Graphs vs Key/Values
- 5. MySQL and MongoDB: Conscious Decision
- 5.1. Enforced Schema vs Schemaless
- 5.2. Normalization vs Duplication
- 5.3. Relations vs References
- 5.4. Transactions vs Atomic Updates
- 5.5. SQL vs JSON
- 5.6. Stored Procedures vs Scripting
- 5.7. GROUP BY vs Aggregations
- 5.8. Clustering and Sharding/Partitioning
- 5.9. Full text search
- 5.10. Development
- 5.11. Monitoring & Diagnostics
- 5.12. Security
- 5.13. Trade-offs, not battles
- 5.15. MySQL or MongoDB?
- 5.16. MySQL and MongoDB: Nowadays
- 6. Conclusions
It would be fair to say that as IT professionals we are living in the golden age of data management era. As our software systems become more complex and more distributed, driven by myriads of scalability and availability requirements, the traditional solutions used for years began to fall behind.
The goal of this tutorial is to provide a fair overview of the two data management solutions: mature and widely used relation database represented by MySQL and a new kid on the block, MongoDB, which in turn represents a new generation of data store. By no means is it a battle with a clear winner at the end. Instead, the intention is to help developers to make a choice and find a right fit for their applications by going through the features of MySQL and MongoDB, discussing the different guarantees and limitations each one has.