When Simpleview designed the new CMS, our goal was to create a product that could handle the many needs and functions of our expanding industry and customer base. In this forward-thinking effort, MongoDB became the obvious choice for its high-performance, web-friendly, document-oriented database platform. Less-technically speaking, MongoDB capitalizes on function over form.
Relational vs. Non-relational Databases
According to the theory of left-brain or right-brain dominance, each side of the brain controls different types of thinking. For example, a person who is "left-brained" is often said to be more analytical and hyper-organized. A person who is "right-brained" is said to be more creative and messy. Both personalities excel at different but important tasks. This same division can be applied to the comparison between relational and non-relational database technologies.
Traditional relational databases organize data, bit by bit, across rigid tables and definitions. While excellent for strict organizational tasks, retrieving a variety of data across those structures can require a great deal of effort and time. Non-relational databases, such as MongoDB, allow data to be stored where and how it will be used, quickly accessed and retrieved from a much more functional structure.
The place that MongoDB dominates related data is the ability to store and query nested data which results in massive performance increases and ease of use. In practical terms this means more cool stuff, served faster and developed faster.
In SQL (a standard relational database), all data is flat and can only go one level deep. For example, in a SQL environment a typical customer "listing" is actually data from numerous tables (accounts, listings, amenities, udfs, listing_images). In order to pull a page of listings it requires intricate joins, which scan across over 20 tables combining them into a single virtual table. This process is done every... single...query. For another example, when querying listings by region in a relational database, it can take between 70ms - 100ms, while in MongoDB that same exact query will take between 5ms - 15ms. That's a performance increase of 5x - 10x.
By taking advantage of MongoDB and its ability to store sub-documents and arrays of sub-documents all within one big document, we're able to make it faster to query, not to mention it's easier for our developers to work with since a "listing" is defined in one area, and all of its data accessible and filterable with a standard query. MongoDB documents are easily represented in dynamically typed languages (JSON, Python, Ruby hashes, etc.), making the mapping to the database very natural and the database ideal for use in web applications.
Multi-server Replica Sets
Another key benefit of MongoDB is that it has Replica Sets, a system that replicates and clusters sets of data... which means high availability. By operating multiple-server replica sets we can ensure that even in a catastrophe, customer databases are still available. If a database server crashes, users will experience no downtime because another server in the set is capable of serving the requests. Maintenance can be performed without sites experiencing interruption.
Sharing the World
Simpleview customers literally show their visitors the world.... that's an ever-changing, ever-expanding variety of information to serve up and make useful to site visitors. When committing to superior technologies and forward-thinking design, Simpleview strives to find technologies and create products that benefit the needs of our customers. MongoDB offers powerful capabilities and robust structure that will allow Simpleview to continue building that world with our customers, today and tomorrow.