Monday, April 16, 2007

SELECTed

I need to make some database decisions before I get to the data model. To my aid comes Tim O'Reilly, paying a karmic debt complementary to my erstwhile service of his Wikipedia page. He's done a series (12345678) of informal interviews entitled "Database War Stories", with focus on Web 2.0 projects, and it's just what I need.

First easy decision: eschew flat files (though they have their uses, apparently). They're fast, but we'd be hamstrung later on. A database means good random access, and the freedom to use ad-hoc queries and change schemas as needed. So there's that.

Next, MySQL versus Berkeley DB versus SQLite. SQLite runs in-process, which would be fast and fun but isn't what I'm looking for. I'll want to cluster later on, and actually manage sizeable amounts of data. Turns out BDB also precludes clustering; it's not client-server either! So. Finally, a real encounter with MySQL.