Return-Path: Delivered-To: apmail-incubator-couchdb-user-archive@locus.apache.org Received: (qmail 61051 invoked from network); 14 Oct 2008 15:36:18 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 14 Oct 2008 15:36:18 -0000 Received: (qmail 48144 invoked by uid 500); 14 Oct 2008 15:36:17 -0000 Delivered-To: apmail-incubator-couchdb-user-archive@incubator.apache.org Received: (qmail 48122 invoked by uid 500); 14 Oct 2008 15:36:17 -0000 Mailing-List: contact couchdb-user-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: couchdb-user@incubator.apache.org Delivered-To: mailing list couchdb-user@incubator.apache.org Received: (qmail 48111 invoked by uid 99); 14 Oct 2008 15:36:17 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Oct 2008 08:36:17 -0700 X-ASF-Spam-Status: No, hits=1.2 required=10.0 tests=SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [83.97.50.139] (HELO jan.prima.de) (83.97.50.139) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Oct 2008 15:35:10 +0000 Received: from [192.168.1.153] (p4FC1165A.dip0.t-ipconnect.de [::ffff:79.193.22.90]) (AUTH: LOGIN jan, TLS: TLSv1/SSLv3,128bits,AES128-SHA) by jan.prima.de with esmtp; Tue, 14 Oct 2008 15:35:45 +0000 Message-Id: <6FC329DB-6EC2-49BE-9DFF-A030767CEC45@apache.org> From: Jan Lehnardt To: couchdb-user@incubator.apache.org In-Reply-To: <521183240810121228u3eef309dw7e44141701401e4e@mail.gmail.com> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v928.1) Subject: Re: When to use CouchDB, when not to... Date: Tue, 14 Oct 2008 17:35:10 +0200 References: <521183240810111938s2d60320fo30e47cdf22acc7d4@mail.gmail.com> <521183240810121228u3eef309dw7e44141701401e4e@mail.gmail.com> X-Mailer: Apple Mail (2.928.1) X-Virus-Checked: Checked by ClamAV on apache.org On Oct 12, 2008, at 21:28 , Lance Pollard wrote: > Just some thoughts on how and when to use Couch vs. MySQL. Any > answers to > this question would really help out a ton. My take on this is that the structure of the data is less important but the types of queries you want to run are. CouchDB can handled structured, unstructured, often- & lesser-frequent updated data just fine. An RDBMS will only go so far providing performance on unstructured data. There's a small sweet spot for CouchDB. The bigger thing though is that an RDBMS handles dynamic queries quite well and CouchDB doesn't. A dynamic query is a query that a developer can't predict when developing / deploying a system. CouchDB views let you mimic dynamic queries a great deal, but you need to be able to anticipate what sorts of queries are run and on which properties they should be run against. If you run into a situation where you need to create a new view on-the-fly for immediate consumption or even think about using temporary views, you need to make sure your data set is rather small; more likely though is that CouchDB is not the right choice. (Yes, if you query an RDBMS on an unindexed column, you are in trouble as well. Still.) Luckily, views are flexible enough that I'd like to apply the 80/20 rule and say they solve most of our user's problems, but I haven't made a scientific analysis yet, so you have to take my word for it :) Additionally, the plugin API that Damien, Paul and Chris are working on lets you hook up other index/search solutions that can complement CouchDB where views are not enough. This will nicely solve the sync- issue that can (will) arise in a hybrid setup. (Not saying a MySQL + CouchDB approach is bad, its just hard :) Cheers Jan --