> Is there any clear reason for preferring one of these DBMS over the
> other for use with Django (1.0 onwards).

Historically, PostgreSQL has favored correctness, ANSI standards, 
and data-integrity while MySQL has favored speed and 
pluggability.  For the most part, they've reached equilibrium.

The GUI/web admin tools are also a bit more polished and diverse 
compared to the PostgreSQL tools.  I just use the command-line 
client for most administration, so it's not a big deal to me.

As of some very old stats I've seen (and thus likely invalid), 
MySQL handled higher initial loads, but wasn't able to sustain 
them as gracefully; while PostgreSQL kept up with traffic, even 
if initial request response-times were a wee bit slower than 
MySQL.  (MySQL had better performance until it reached a 
threshold and then started falling off; while PostgreSQL's didn't 
experience the same falling-off under high load).  Take this with 
a grain of salt as I mention, since the study was c. 2003 or 
something.  A lot happens in 5 years. :)

There are a couple distinguishing features offered by one that 
you won't find in the other such as:

MySQL is more popularly installed on cheaper shared-hosting 
plans, so you'll find it more in the wild. It's also possible to 
use various table-types ("storage engines" in MySQL-speak[1]) 
which may not offer transaction safety, but offer other benefits: 
  memory-only tables, "Merged" tables which can be split across 
drives, MyISAM tables which are faster but don't offer 
transactions, and "archive" tables which are good for 
infrequently accessed ("archived", duh :) data.

PostgreSQL has built-in GIS data-types and functions, which I 
believe are required for the GeoDjango functionality (or Oracle). 
  PG also allows flexible creation of new data-types and 
functions/operators as shown by the GIS data-types that were 
integrated early.  It also offers some under-the-covers stunts 
with table-inheritance.  It's very close to Oracle syntax (from 
what I understand, having never used Oracle), so Oracle admins 
may feel more at home in PG.

I personally find MySQL easier to administer, but MySQL has a 
reputation as being built for developers, while PosgreSQL has a 
reputation as being built for DBAs.  I'm a developer first.

So I can't really recommend one vs. the other unless I knew your 
needs.  Do you need GeoDjango, custom data-types, 
table-inheritance or "enterprise"y features for your DBA, then 
PostgreSQL may be a better choice.  Do you need flexibility in 
storage-engine choice, ready availability on shared/inexpensive 
web hosts, or spiffy GUI/web admin interfaces, then use MySQL.

My last bit of advice:  if you don't care strongly about any of 
these features, DEVELOP FOR BOTH -- they're both free to download 
and install, so there's little reason not to.  Django 
(particularly the work on the ORM -- special thanks to Malcolm 
here) makes this very easy.  You can then test against both and 
see which performs better.  And if it's an app you plan to share, 
it will let others choose a backing DB for their own reasons 
rather than reasons foisted by you.

-tim

[1]
http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html





--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to