tags:

views:

69

answers:

3

Let's pretend it's for word frequency counts in a web crawler. Is relational the way to go (I'm imagining a simple two-column table) or is there a NoSQL option better suited to this task?

When I say better, I mean more conceptually suited to the task. I'm not really concerned with scalability, just simplicity and an obvious conceptual mapping to the task at hand. In the way that, for me at least, CouchDB maps much more sensibly to a blog than MySQL does.

A: 

first - are you looking for paid database or a free one ? if you have 1 or 2 tables maybe 1 or 2 indexes, no need for enterprise features (clustering/replication/Flashbacks) then any DB can do good from mysql (the free one) to sql express(still free) , sql server and oracle which both are commercial and cost money.

you need to understand that the hardware might have a role here too, as the schema looks very simple and there wouldn't be much optimization possible - but then again - I don't know your exact needs...

(on the other hand if you're talking about extreme large tables with a lot of read and writes - and I mean A LOT you might need a configuration of 2 active nodes and other advanced features than might push you towards paid databases)

Dani
Oh definitely free. I'm not so much talking about scaling as concept. I'll edit that into the question.
Daniel Straight
So start with mysql if you like linux, or sql express if you like windows, it's a simple database, and both can hold it.in your case you might as well implement a memory based DB (very fast - but confined to your RAM limits.
Dani
A: 

Have a look at the papers and ideas behind Google BigTable (and the MapReduce operations possible on it). There's other implementations that think in that box; you're really implementing a distributed hash table, to give you some juice to throw at Google.

Jed Smith
+1  A: 

If this is a thing that you'll only run on one machine I'd just use an internal datastructure, a red-black tree or perhaps a trie for something as simple and small as this.. Or I'd embed a key/value pair database such as BerkeleyDB.

nos
It never even occurred to me to keep it in memory... it never does. I don't know why.
Daniel Straight