[ic] PGSQL vs. MYSQL for IC

Ethan Rowe ethan at endpoint.com
Wed Aug 4 13:21:48 EDT 2004

>Check out this post by Mike:
>It is old, but the "bad timestamp external
>representation" problem was brought up within the last
>week without a resolution.
>I had no experience with either DB and ended up
>setting up both for IC.  The Postgres docs seem a lot
>clearer to me, and I *think* Postgres is secure "out
>of the box" while you have to secure MySQL after
The Postgres docs are, in my experience, much better than MySQL's.  You 
can almost always find exactly what you want in the Postgres docs, 
without much effort.

>  However, setting up MySQL for IC was so
>much easier than setting up Postgres.  I never was
>able to get Postgres to AUTO_INCREMENT and MySQL does
>it so easily.  MySQL also seems faster to me, but I
>could be wrong about that.  Postgres has a BSD style
>license as opposed to MySQL's GPL, but IC is GPL
MySQL most likely is faster for simple queries; that's what it excels 
at.  The irritation of setting up PostgreSQL might, however, be worth it 
in the long run.  If you get into situations involving joins or 
subqueries of any complexity, you'll start appreciating Postgres over 
MySQL.  If you want to get more sophisticated, the Postgres rules engine 
is fantastic, essentially letting you abstract structural details of 
your data from the application level even further than simpler things 
like views (see http://www.postgresql.org/docs/7.4/static/rules.html).  
I don't think MySQL has anything to compare to that, but I could be wrong.

I guess this is where I'm going with this: if you use MySQL, you'll 
presumably get into situations in which you wish your database engine 
was more sophisticated, unless you have a pretty simple system.  Issues 
like data integrity probably must be signficantly enforced at least 
partially at the application level.  If you use Postgres, you have 
tremendous power available to you and, if you're willing to invest the 
time, you can take a lot of functions (like inventory control, as I've 
done for a client) completely out of the application level (Interchange) 
and enforce it entirely in the database.  It allows for more robust 
systems.  The learning curve is also higher.

Perhaps that was of use to somebody out there. :)

Ethan Rowe
End Point Corporation
ethan at endpoint.com

More information about the interchange-users mailing list