Linked by MOS6510 on Fri 2nd Aug 2013 18:06 UTC
Databases
Let’s say you’ve decided to set up a website or an application. You'll obviously need something to manage the data. Yes, that's right, a database. So, what is it going to be? MySQL, MS-SQL, Oracle or PostgreSQL? After all, nothing can be as amazing as a good old RDBMS that employs SQL to manage the data.

Well, allow me to introduce to you an entirely unique and unconventional Database model - NoSQL.

Thread beginning with comment 568760
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: ...
by Hiev on Fri 2nd Aug 2013 23:35 UTC in reply to "RE: ..."
Hiev
Member since:
2005-09-27

It's easier to scale something like Redis than to scale a SQL-server.

That depends of you definition of scale.

Reply Parent Score: 3

RE[3]: ...
by galvanash on Sat 3rd Aug 2013 02:58 in reply to "RE[2]: ..."
galvanash Member since:
2006-01-25

That depends of you definition of scale.


True. If you are trying to scale up read performance and you do not have a write bottleneck - there is little inherent advantage to the noSQL approach. Generally speaking, either approach can scale out reads rather well, and traditional relational databases have tremendous advantages when it comes to querying flexibility.

Of course if you have that particular problem consider yourself lucky ;)

On the other hand, if you are primarily write bound, can plan your data model so that you do not need the flexibility SQL offers, and can live with the consistency tradeoffs, noSQL approaches have significant advantages.

In my opinion it isn't a matter of SQL vs noSQL, it is a matter of ACID vs BASE (eventual consistency) when the discussion is about scaling...

https://en.wikipedia.org/wiki/Eventual_consistency
https://en.wikipedia.org/wiki/CAP_theorem

I would add that, in my opinion, if your problem can be adequately handled by 1 or 2 high powered servers you are probably better off with a traditional RDBMS and all the benefits of ACID compliance that come with it.

NoSQL makes sense when:

1. Your problem is so simple and so small that it doesn't actually matter. Some developers like the key-value approach just to avoid having to deal with a traditional RDBMS complexities. Schema-less datastores are nice and easy for developers who want to model their data in their application layer. If this is you go for it, you will likely learn a lot on the way - and if your problem set grows or evolves you will learn all the bad stuff about noSQL too... I'm not saying I think this is a "good" reason to use noSQL, I just think it is very useful to learn by doing, even if you discover it was a bad idea along the way...

2. Your problem is really big. You have a absolutely huge dataset that requires ALOT of write throughput and you only need to query it in very specific ways. If you _really_ understand your problem well and can live with some of the tradeoffs brought about in eventual consistency models, noSQL can make your life easier (and dramatically reduce your maintenance and hardware costs).

Most real world problems are somewhere in the middle of those two extremes... All I can say is you don't really appreciate the benefits of an ACID compliant RDBMS until you discover you need them, usually at the point you are too far along to do anything about it ;) Tread carefully...

Reply Parent Score: 4