Quoting Bill Moran <wmoran@potentialtech.com>:
If you look at an OS (Linux or BSD or whatever) you'll see the kernel divided into machine dependent and machine independent parts. For example, you can't boot an ARM processor the same way you boot an i386 CPU, but most of the other things the kernel does can come from the same code.
I expect that the right way to make Drupal _truly_ database neutral is to have database-dependent and database-independent code. You'd only see this kind of thing at the lower levels, and higher logic code shouldn't even care about it.
Drupal SQL http://drupal.org/node/191486
Take, for example, that COUNT(*) is _really_ fast on MySQL + MyISAM, but is slow on just about every other DB. So, replace it with $db->count(), which does an SQL COUNT(*) on MySQL + MyISAM, but uses some other technique on other databases. The programmer no longer cares _how_ such a thing gets done, he only cares that he wants to know how many rows are in a particular query
And we can optimize in the abstraction. We need to trim the number of places to worry with optimization. Earnie -- http://for-my-kids.com/ -- http://give-me-an-offer.com/