On 06 January 2003, Michael Watkins said: > I'm in the middle of trying to transition my mindset away from relational > database-think into ZODB-think. Its tough for me, I've found. Funny -- I found it incredibly awkward trying to shoehorn stuff into a relational DB; I was itching to jump to an OODB, and when we started using ZODB, everything just felt right and natural. > Initially I spent a bunch of time trying to come to grips with losing SQL > (specifically the query-language). I looked at IndexedCatalog and while its > interesting I'm trying to avoid adding the overhead it imposes unless I > really need it. The loss of a query language is irrelevant; Python becomes your query language. You don't *really* enjoy embedding SQL in Python, do you? Unless you are a true SQL wizard, I bet you ended up using Python code to knit together the result of several small SQL queries to do anything complicated/interesting. However, the lack of real indexing infrastructure builtin to ZODB is a major weakness. It's a weakness that we've lived with for over two years now; but we have the happy advantage that our database grows slower than hardware gets faster, so we've been able to stay ahead of the curve. (Our worst-case brute-force crawls are typical around 1000 to a few thousand objects. We do have scripts that crawl our entire database (around 250k objects last I checked), but those run offline, not via the web.) Furthermore, our entire database is around 100 MB, so can comfortably fit into main memory on all of our servers and most of our development machines. If our database was an order of magnitude larger (gigabytes of data, millions of objects), I'd be a lot more worried about fancy indexing and caching schemes. Greg -- Greg Ward - software developer gward@mems-exchange.org MEMS Exchange http://www.mems-exchange.org