I'd say: go with what you are most comfortable with.
Thanks,
James
> --
> You received this message because you are subscribed to the Google Groups "nodejs" group.
> To post to this group, send email to nod...@googlegroups.com.
> To unsubscribe from this group, send email to nodejs+un...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/nodejs?hl=en.
>
>
Also, i use couch as well.
To unsubscribe from this group, send email to nodejs+un...@googlegroups.com.
For the sake of discussion, I disagree with that. Betting on the
wrong technology will bite you hard, even if it gets you quickly to an
working product (but I don't think it would).
Speaking of languages: judging by community, PHP is still the
"superior" choice. But you don't want to use PHP, really.
Speaking of databases, again judging by the community size, MySQL
seems to be the winner. But with it, you'll lose.
See, speaking in general, the tools that manage to attract the biggest
communities are usually the crappiest ones. I'm not sure why this
happens, but it does. We're living in a "worse is better" world. [1]
Now back to the DB problem: I'd go with Postgres. For fun stuff,
check this too: http://howfuckedismydatabase.com/ ;-)
[1] http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.114.4096&rep=rep1&type=pdf
Cheers,
-Mihai
Hi,
Which database do you usually use with your node.js projects? Is there
any that fits node better? Maybe Riak?
we also use couchdb - but really you need to pick the db whose features
fit your needs the best - at least several have a good node driver
(mysql, sqlite, postgres, mongo, ....
Best Fabian
//semi topic
I i decided to write a super entry level post about couch.
http://blog.owned.co.za/?p=269
Ill be refining it over the course of tonight, suggestions welcome :)
> I know Mongo is faster than Redis.
With all due respect, you may want to re-check your facts... given
that Redis is an in-memory datastore I find this highly unlikely.
Comparing Redis to MongoDB, Couch and Riak is like comparing apples to
baseballs. The only benchmark I can find to support this is
http://milancermak.posterous.com/benchmarking-tornados-sessions-0 and
it seems pretty flawed.
--
Orlando Vazquez
--
-Karl Tiedt
I think the concensus was that Redis is the shit if your problem fits
it's use case. CouchDB is a great general purpose db with great node
support. Postgres wins for relational with good node support. MongoDB
is great at losing data but good for analytics. Riak wins for
distributed db with good node support.
You need to figure out your use case and pick one that fits. There is
good node support for all databases right now compared to other
languages except for mongo and mysql because the standard c drivers
use blocking io. There are some pure js drivers but the maturity and
reliability of those are concerning compared to the tried and true c
drivers that have been in use in all languages for a while.
-Mikeal
Strengths of my 4 favorite solutions.
- CouchDB - Rock solid (durable, etc), replicates (this truly is awesome for mobile situations), and the protocol is HTTP based so using it from node is trivial even without a special client.
- Redis - Super awesome fast, super simple tcp protocol. You can telnet in and use it directly using text. There are solid node clients too.
- nStore - Super fast, persists to disk, in-process (100% pure node, uses the same process as the rest of your server)
- PostgreSQL - The best (IMHO) relational database for almost any relational use case. Very powerful and mature. You can do very complex queries since it has proper joins and query optimizers.
Weaknesses
- CouchDB - Somewhat heavy and a little slow for a nosql (but slow is relative, these are all pretty fast)
- Redis - It's not good for general purpose database or complex queries. Also it's optimized for the in-memory case
- nStore - not quite mature yet. No indexes yet (queries will be slow)
- PostgreSQL - Relational (This could be good or bad depending on your use case) Drivers for node are not quite mature.
Example use cases it's ideal for
- CouchDB - Lots of things, especially when you want to sync data for offline-online mode in the client (couch in the client too) Document oriented, some query ability through views. Also CouchApp style techniques are neat.
- Redis - Cache, event queues, other data structures, basically super high speed data that doesn't usually need to stick around forever or have complex queries against it.
- nStore - Aims to fit the same use cases of couch, but be simpler to set up and much faster. For simple persistence (think sqlite for node, but nosql)
- PostgreSQL - Large systems, traditional CRUD apps, anything with complicated queries/reports. There are addons for everything from GIS to full-text search. Native array data types and all sorts of other advanced use cases. Basically any use case that can fit into the relational model well will work great with postgres.
Like others have said. It depends on your use case. I would use all four of these (sometimes a couple in the same app at once) depending on my use case.
It's not about what fits node, but it is does matter what works from node. Binary protocols like postgres, mysql, mongo, etc are going to be harder to write solid drivers from node and have different levels of maturity since node's ecosystem as a whole is still quite young.
2010/9/11 Felix Geisendörfer <fe...@debuggable.com>:
--
I've actually already written a pretty detailed article about MongoDB's view of durability and how that compares the rest of the database world.
http://www.mikealrogers.com/2010/07/mongodb-performance-durability/
-Mikeal