Hi All,
just an interesting comparison between MySQL and PostgreSQL
(It’s from http://www.userlinux.com/cgi-bin/wiki.pl?White_Paper)
Regards
Armin
======================================================================
Database Management System (DBMS)
MySQL with non-GPL libraries. This departs from the standard MySQL
release in order to facilitate commercial development and distribution
without forcing the user to purchase a MySQL developer license. Pay
MySQL for training and service. I am not a database pro, and will listen
to argument about the merits of other database servers. [Comment:
Previously MySQL did not have much competition, but in recent years
PostgreSQL has taken giant leaps. In terms of technical excellence,
adherance to SQL standards, enterprise level features (rollbacks, views,
good stored procedures), PostgreSQL wins hand on to MySQL. An important
criteria when selecting a database is its conformance to SQL standards.
MySQL doe not support SQL92, it’s basicly SQL89 language set, which just
happens to be called “entry level” SQL92 (there are three levels). MySQL
is proprietary in many ways: huge number of non-standard datatypes and
storage extension flags to them. Justifying a database just by raw
perfonmance is not the correct path. Granted that previois PostgreSQL
6.x versions could not be recommend. But 7.x versions are truly
impressive. In addition PostgreSQL does not have any license issues;
it’s pure GPL]
MySQL has a “write once read many” nature. Meaning that in order to make
it a good and fast website development platform its developers just let
down some robustness and standards compliance. In that quality it is
more suitable for web site and non critical data storage. Recent
evolution of MySQL point in the same pro-commercial way that Red Hat
started. For critical activities a more robust DBMS will be needed. Some
critical features will be needed like “write many read many” ability,
record level locking instead of table locking ability, triggers, stored
procedures, transactions and more strict ANSI SQL compliance, to name a
few. Government, Hospitals, Banks will need credible alternatives to
Oracle and DB2. They will prefer pure open source DBMS, e.g., one
without non-GPL libs. Such a DBMS exists, it has a solid academia
background, it not only is open sourced but the development process is
also open. That DBMS is named postgreSQL.
MySQL with InnoDB (shipped as standard in 4.0+ IIRC) provides
transactions, row-level locking with consistent views and robust crash
recovery. MySQL has the mindshare and for all MyISAM’s faults it’s Good
Enough for most stuff and Fast. As for other features, the only one
people really miss is stored procedures, and they’re currently in
development - I think by the time we really need them they’ll be there.
I think PostgreSQL is a better choice. Its performance is up to snuff,
and its feature set is far more complete. The stored procedures and
procedures written in Perl, Python, and TCL are not new/recent features
in beta. On the new features side, the upcoming release includes support
for tablespaces, point-in-time recovery. Replication and Clustering
support are also there, and there is already a corporate entity that
provides support for the PostgreSQL database. PostgreSQL is BSD licensed
and it fits more cleanly into a community based effort. MySQL is a great
product, but the ISV’s who support UserLinux will ALWAYS have to pay a
license fee (albeit a comparatively nominal one) if their products are
not open-source (GPL’d). This will represent a barrier to adoption.
Because MySQL is a corporate entity, (with all due respect) it would be
naive of us to assume they wouldn’t change their licensing policies to
be more restrictive or fork their code into “platform edition” versus
“enterprise edition” if it were in their best interests.
Robert Rutherford wrote:
On Mon, 06 Sep 2004 16:18:17 +0200, Armin Steinhoff wrote:
For what reasons are you using MySQL ?
As I said in my original post:
FYI we selected MySQL over some of the other options (eg RDM, Empress)
mainly because of the wide range of third party tools and support that is
available.
The only thing I would add to this was that we also need a commercial
product with paid support and no GPL issues.
And it doesn’t hurt that our customer base have all heard of MySQL.
SQL Lite is good for the right application but it doesn’t support
client/server architecture, it doesn’t support typed data, it doesn’t
support foreign key constraints, it doesn’t support ALTER TABLE, it doesn’t
support FULL OUTER JOIN, it doesn’t support sophisticated user permissions,
it doesn’t support BLOBs, it doesn’t support replication, it doesn’t have
graphical administration tools. Do I have to go on?
Don’t get me wrong, there are lots of different database solutions out
there that are all good fits for particular applications. SQL Lite looks
excellent for a small embedded solution, as does mcobject. There are also
Birdstep solutions that look good for embedded. Postgres is a better option
if you want “Enterprise class” features such as Stored Procedures,
Triggers, etc but it is not as well supported (commercially) as MySQL.
For us it was the 3rd party tool support for MySQL that was the clincher
(eg ODBC, DeZign for Databases, dbVisualizer etc etc). And having gone down
that path, we have been very pleasantly surprised by MySQL’s robustness (we
have never seen it crash, it recovers from power failures very nicely, and
replication works well).
Rob Rutherford