views:

64

answers:

2

I think one of the advantages of no-sql such as MongoDB is that it can scale horizontally automatically: just add a cheap machine and the data can "spread over" to the new machine.

How about for RDBMS, does any RDBMS do that automatically too?

+1  A: 

I have only worked with MySQL and MySQL supports partitioning. However, partitioning is restricted to a single database server, which means that horizontal-scaling (sharding the database to multiple machines) is not something that the database engine manages. This has to be managed at the application level.

MySQL Partitioning is said to work very well in write-heavy use-cases.

To give you further direction :

Scaling mysql writes through partitioning at Yahoo

Database sharding at Netlog

srivani
+1  A: 

The answer here is "kind of". MySQL doesn't really have anything native of "for free". Big RDBMS technologies like MSSQL and Oracle do have very good support for scaling out. However, both technologies are expensive and there's no way to through a thousand servers at MS SQL and say "have at it".

Of course, even with millions of dollars in servers and tech, you still won't have ready access to joins. I mean, how can you reliably join data across 500 servers?

Honestly, I think your question is probably best answered by the very existence of technologies like MongoDB and CouchDB. These technologies exist b/c developers need a way to reliably "horizontalize". RDBMS, by their nature, are not good at horizontalizing. Again, how can you scale a join?

Gates VP