ben+python at benfinney.id.au
Fri Jan 18 21:24:40 CET 2013
Kwpolska <kwpolska at gmail.com> writes:
> On Fri, Jan 18, 2013 at 4:19 PM, Nick Cash
> <nick.cash at npcinternational.com> wrote:
> > MySQL would certainly be fine, although I always recommend
> > PostgreSQL over it.
> Bonus question, why?
The PostgreSQL community gets asked this question so often that they
have a page with resources answering in various ways depending on what
the reader needs to know <URL:https://wiki.postgresql.org/wiki/MySQL>.
For me, the reasons are many. Some important ones:
* MySQL happily alters data on input to the database, if it feels the
need, without regard for data integrity.
PostgreSQL has always valued the integrity of your data, rejecting
invalid data before it can become an integrity problem.
* MySQL has atrocious error messages and opaque error reporting, making
it very difficult to figure out what has actually gone wrong with a
command it doesn't like.
PostgreSQL's error reporting is far clearer, helping pinpoint the
location of the error. It also has an exception-raising mechanism that
the programmer can use.
* MySQL's development has suffered under Sun, and become virtually
moribund under Oracle. They operate as a closed shop, occasionally
tossing GPL-licensed releases over the wall, with very little input
accepted from the community.
PostgreSQL development has for a long time now been faster than
MySQL's, and their community is far more open to contributors and bug
reports. As a result, the development is much more community-focussed
and addresses requests more directly.
That latter point is a big flag that Oracle's MySQL is a dead end while
PostgreSQL has a vibrant future. If only from the perspective of who's
going to support you better in the long run, the choice is clear to me.
\ “Alternative explanations are always welcome in science, if |
`\ they are better and explain more. Alternative explanations that |
_o__) explain nothing are not welcome.” —Victor J. Stenger, 2001-11-05 |
More information about the Python-list