Home > Archive > PERL Beginners > November 2006 > DB question
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
|
|
| Tom Smith 2006-11-06, 9:56 pm |
| Hi,
This might be a little OT, but I thought I'd pose the question anyway...
Let me know if it's OT and I'll take it elsewhere.
I'm a little about the whole database thing. I mean, I
understand them and know what they are but which one should really be
used for mission critical applications?
You ask the folks at MySQL they say there stuff it awesome and has
available commercial support, something that "other" enterprise open
source databases don't have. Yet, PostgreSQL is said to be much more
reliable and robust. (Just different opinions--some from friends some
from research.)
So, my question is this...
I'm a beginning Perl programmer trying to choose a database to learn and
(eventually) use in mission critical applications. And I'm looking for
something that quite scalable.
The three databases I've read a little about are: MySQL, PostgreSQL, and
BerkeleyDB.
Can anyone offer some advise here?
Thanks, in advance, for your help.
~ Tom
| |
| lawrence@cluon.com 2006-11-06, 9:56 pm |
|
> I'm a little about the whole database thing. I mean, I
> understand them and know what they are but which one should really be
> used for mission critical applications?
>
The one that is best for your application.
>
> So, my question is this...
>
> I'm a beginning Perl programmer trying to choose a database to learn and
> (eventually) use in mission critical applications. And I'm looking for
> something that quite scalable.
>
> The three databases I've read a little about are: MySQL, PostgreSQL, and
> BerkeleyDB.
>
> Can anyone offer some advise here?
>
Perl (see how I bring it ontopic so quickly? ) offers several tools
for abstracting database access, such that it doesn't matter WHICH
engine is behind the scenes. Learn to use DBI and friends and you can
move ably between databases.
If you're talking about a database that speaks SQL, clearly the "big
three" are MySQL, PostgreSQL and Oracle. There are on the order of a
dozen more that you'll see "in the wild" (e.g. DB2, Informix, Sybase)
all of which have their fans. This is what comes to mind when most
people think "database" (as opposed to seven years ago when you said
"database" and the Pavlovian response was "Oracle").
BerkeleyDB (and with it dbm, ndbm, and others of their ilk) are not so
much a "database" in the traditional sense, but a set of libraries for
adding structure to flat files.
There are perl modules that provide stripped down "SQL-like" access to
either dbm databases or a flat-file (DBD::DBM, DBD::SQLite) that can
plug in for some (but not all) 'database' applications.
As to which is "the best" ... None.
Every one has some tradeoff -- that's what engineering is all about --
you give some here, to get some there. Your job is to find out where
"here" and "there" are for your application.
Since I use all of MySQL, Postgres and Oracle in my daily life, I do
have opinions about them :)
Pros of MySQL: Huge volume of people who know how to use it,
reasonably fast, replication well supported.
Cons of MySQL: Even huger volume of people who THINK they know how to
use it, but don't. Consistently (n) years behind in feature
acceptance[1].
Pros of Postgres: Compulsive attention to SQL standard, rich
featureset (subselects, views, ACID that is actually atomic,
consistent, isolated and durable) bullet-proof.
Cons of Postgres: replication is ...challenging. Rarely wins in
database benchmarking contests.
Pros of Oracle: It can do *everything*. As the 900# gorilla in the
space, they can single-handedly declare what SQL is, and the rest will
follow.
Cons of Oracle: It can do *everything*. Configuration is tedious,
and the user tools are painful to use. That which is infinitely
configurable must be infinitely configured.
As to which to learn first -- my personal favorite is Postgres -- it
offers a good balance between performance and feature-set and is well
supported, with an active user community.
[1] The MySQL community (as a collective consciousness) tends to
poo-pooh any feature they don't currently support as frivolous,
unwise, or evil. Until such time as they support it, when it suddenly
becomes integral, intelligent and obviously correct. A couple of
years ago, I was having an animated discussion with someone as to why
my current employer used Pg instead of MySQL, and he said, "Well - we
have [that feature] now!" "Great! Take it back in time to 1998 when
we wrote all this code that needed it, and we chose Postgres!"
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Lawrence Statton - lawrenabae@abaluon.abaom s/aba/c/g
Computer software consists of only two components: ones and
zeros, in roughly equal proportions. All that is required is to
sort them into the correct order.
|
|
|
|
|