> 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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---