Friday, August 27, 2010

Are NoSQL implementations really faster than the usual SQL thing?

This was the question that I received from France via Aardvark. Here's my response:

"Faster" when applied to software implies a number of things - including the quality of implementation (which can sometimes play a very significant role).

Firstly, it is unfair to compare NoSQL and Relational databases because many NoSQL implementations do away with many of the hard guarantees of the relational world. So even though you might get a speed boost because of that, you're compromising on durability or consistency in some cases.

Secondly, space usage is definitely a concern. Not everyone can afford the humongous disks that NoSQL implementations will invariably require (denormalization eats up space because of repetition - but this does not apply in all scenarios and can be mitigated with careful thought - YMMV).

Thirdly, nothing can beat RAM - so pure memcached implementations will beat a database anyday at the cost of durability of data.

In short, treat "fast" as a term to be used with caution in this scenario as you are essentially comparing apples with oranges. If you still wish to look at some figures, check out http://www.mysqlperformanceblog.com/2009/10/19/mysql_memcached_tyrant_part3/

Hope this helps.