Re: Thesis on PostgreSQL - Mailing list pgsql-hackers
From | Jim C. Nasby |
---|---|
Subject | Re: Thesis on PostgreSQL |
Date | |
Msg-id | 20040904155618.GG69298@decibel.org Whole thread Raw |
In response to | Re: Thesis on PostgreSQL ("D'Arcy J.M. Cain" <darcy@druid.net>) |
List | pgsql-hackers |
On Sat, Sep 04, 2004 at 09:24:04AM -0400, D'Arcy J.M. Cain wrote: > On Fri, 3 Sep 2004 15:11:54 -0500 > "Jim C. Nasby" <decibel@decibel.org> wrote: > > > I'm not aware of any generally accepted definitions of generations > > > of > > database management systems. > > > > Nor am I, but I'd say MySQL would be at least 2 if not 3 or 4 > > generations behind PostgreSQL if there was such a thing :). PostgreSQL > > would also be a generation or two behind Oracle. > > Bzzzt! Do you work in Oracle's marketing department? PostgreSQL is not > a generation behind Oracle by any reasonable definition. We may lack > some features that they have but they lack some features we have. You > need to do some constructive defining to put one ahead of the other. > > The only "generation" differentiation I have ever heard about in general > use was based on the language used to talk to the database. In that > sense PostgreSQL is 3GL (SQL) and plpgsql might be 4GL. Progress is a > 4GL. I'm not sure that's a feature though. First of all let me say that PostgreSQL is an outstanding database. I would even go so far as to put it ahead of DB2 and maybe MSSQL, even though those two databases have some important features that PostgreSQL doesn't. Having said that, there's a *lot* of features Oracle has that PostgreSQL doesn't: Multi-master replication Clustering (heh, both in the table sense and in the multiple machines serving one database sense) Parallelization of individual queries Partitioning Recursive queries PL/SQL is a richer language than plpgsql, and can be used outside of functions All of the DBMS_* stuff A more sophisticated optimizer (which translates into less time spent worrying about how you're writing your SQL) On the flip-side, PostgreSQL has features Oracle lacks: Free! The ability to heavily customize PostgreSQL, by adding datatypes and even function languages. Handling NULLs more rationally There is also the difference in how Oracle and PostgreSQL handle MVCC which eliminates the need for them to vacuum and helps scaleability (since rollforward and undo logs can be placed on separate physical partitions). It's very clear which way is ultimately better though, so I'm not listing it as a feature of either. I've probably forgotten some other features of PostgreSQL, and I know there's Oracle features I haven't mentioned. So, what defines a generation? If you're talking programming languages (ie: 3GL vs 4GL), then there may be no difference (though I would put PL/SQL closer to 4GL than I would plpgsql). But we're not talking about programming languages here, we're talking about databases, and I would argue that many of the features Oracle has would define a generation gap, notable the scalability features and the more advanced replication. Then there's the grid features in 10g, which I would say put it a generation ahead of DB2 and MSSQL. In any case, I don't think it's fair to jump the gun and assume I work for Oracle (I don't, though I was offered a job). There's been much discussion about how we need to stop comparing PostgreSQL to MySQL and instead compare it to Oracle, and I believe this to be true. Trying to ignore where Oracle outshines us isn't a way to do this. -- Jim C. Nasby, Database Consultant decibel@decibel.org Give your computer some brain candy! www.distributed.net Team #1828 Windows: "Where do you want to go today?" Linux: "Where do you want to go tomorrow?" FreeBSD: "Are you guys coming, or what?"
pgsql-hackers by date: