Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When to use NoSql, and which one? [closed]

Tags:

nosql

I've been programming with php and mySql for a while now and recently decided that I wanted to give nosql a try. I would really appreciate if some of you with experience could tell me:

  • When is it a good time to switch, how do I know nosql is for me?
  • Which nosql software would you recommend?

Thanks

like image 929
DavidW Avatar asked Jun 21 '11 20:06

DavidW


3 Answers

When is it a good time to switch?

It really depends on the particular project. But in general I see that I can use nosql for 95% of web applications. I will still use old good sql for the systems which should guarantee ACID (for example, systems that work with 'real' money).

How do I know nosql is for me?

It's for you, for you, believe me. ;)

You just need to try something from the nosql world, read some existing articles and you will see all of the benefits and problems.

Which nosql software would you recommend?

I would personally recommend you to start from mongodb, because it really simple. To become an expert in sql takes years, to become an expert in mongodb needs a month or so.

I suggest that you spend an hour for reading "The little mongodb book" and try to write your first test application starting from tomorrow.

No one here will say that you need to use this, or this database. What database to use depends on project and requirements.

like image 188
Andrew Orsich Avatar answered Sep 18 '22 23:09

Andrew Orsich


It depenends on your application needs.. There are a lot of options.

You can use a document-oriented like mongodb, a "extended" key-value like Redis or maybe a graph-oriented like neo4j

This article is very useful http://highscalability.com/blog/2010/12/6/what-the-heck-are-you-actually-using-nosql-for.html

like image 20
Felipe Cruz Avatar answered Sep 17 '22 23:09

Felipe Cruz


This recent blog post in High Scalability pretty much answers your question in regards to when to use NoSQL.

I myself always go MySQL until it fails me and then choose the right tool for the job, some of the non-relational databases I worked with are:

  • Riak: a dynamo clone which is useful when you need to access records quickly but you have too many records to keep on one machine. For instance a recommender system for users in a web application, you want to access the data in a few milliseconds but you have 200M users.
  • MongoDB: a document-based database, for when I needed speed but had a write-intensive application (read/write ratio close to 1:1) the data was highly transient so I didn't care about the durability issues
like image 42
Asaf Avatar answered Sep 19 '22 23:09

Asaf