Simplicity is the ultimate sophistication
- Leonardo Da Vinci -
Relational databases, and to a degree MySQL, have become the backbone of commercial organisations. Programmers and database developers have been engaged in a tug-of-war, deciding the best place to store and execute the business logic.
Recent attempts to objectize the Database (Hibernate, JPA, iBATIS) have had cult-like following. But for performance purists (not to mention DBAs) Object Relational Mapping (ORM) solutions are often plagued with performance limitations and gotcha's, such as caching issues, type casting problems, transaction problems etc.
So when a new breed of JSON 'document style' storage servers arrived we approached them with some sceptcism.
A quick, personal (non rigourous) comparison
The following highlights a typpical user story of one of our customers:
Insert 10000 records Table
Update 1000 records based on a non-key'd update
Update 1000 records based on a key'd query
on my small development server I get :
Loading test data …
Now lets compare this to the new breed of NoSQL databases. I used MongoDB in this case because it is C++, thread safe and deployable to Windows, Mac OS X and Linux (including our ISP), plus it supports Java, .Net, PHP connectors.
Some interesting other factors regarding the B-Tree database
The main down side I have seen so far: