On 23 March 2013 20:36, Edward Ned Harvey (lopser) <[email protected]> wrote:
> If you build an application that depends on specifics of the DB, then
> you're making yourself inflexible to switch to a different DB. It is
> advisable in most cases, to build a layer of abstraction in your data
> model, away from the DB. So you could easily switch the underlying
> DB if you wanted to. But that's not always possible, and I don't
> have any simple way of telling you how to do that.
Totally disagree here.
By doing this you reduce the usable database feature set to the lowest
common denominator, which
- dramatically reduces your license ROI[1] (wasted $)
- requires lots of extra wheel reinvention (wasted $)
- will necessarily require performance compromises (wasted $)
- requires you to understand, deeply, the possible gotchas, like
different databases handling multi-version concurrency
differently[2]
I could go on, but really, I recommend you read Kyte instead. I agree
with him wholeheartedly.
How anyone can get away with buying [often very expensive] database
licenses and then deliberately not using most of the features they've
paid for on nothing more than a _fantasy_ that they might later switch
databases, is beyond me.
FWIW I'm a PG fan. For the real world web apps I was developing in 1999
PG (v6.3, IIRC) was already demonstrably superior[3], performance-wise,
to MySQL, and I didn't find it any more difficult to install than MySQL.
PG has wonderful documentation. Haven't used MSSQL, so can't comment
there.
John
[1] Yes, PG's free beer, but to put it on equal footing with MSSQL you
would be paying for support or spending $ getting staff up to speed
[2] Tom Kyte "Expert Oracle By Design" - a GREAT book even if you
don't use Oracle, IMHO. Can't recommend it enough
[3] I think this was before MySQL finally implemented modern locking and
thus was able to support more than one concurrent app user
_______________________________________________
Discuss mailing list
[email protected]
https://lists.lopsa.org/cgi-bin/mailman/listinfo/discuss
This list provided by the League of Professional System Administrators
http://lopsa.org/