I've been looking into this recently, as I really wanted transaction
support for my database. However, given my web hosting situation, it's
much easier to run MySQL. What follows it what I've researched, but
haven't actually implemented yet.
On Sun, Feb 17, 2002 at 09:39:31PM -0500, Rich Payne <[EMAIL PROTECTED]> wrote:
> Correct, if memory serves me when MySQL does a write it does a whole table
> lock (or was that a whole DB lock, can't remember). Anyway, it's very
> quick at reads, at the expense of writes. There are other limitations of
> MySQL, for instance no sub-select (select * from table where field in
> (select * from....)). To get round this you can sometimes use a join, at
> other times it requires a temporary table. It also doesn't support
> commit/rollback - basically if one part of this update fails, roll back
> any other changes to the previous state. Note that these limitations are
> being addressed and 4.xx (in alpha ?) supports sub-selects and there is
> transaction support as well. However the mysql shipped with any distro
> probably won't have that.
MySQL supports additional table types in version 3.23, which is
a stable release. These table types have run through a lot of testing,
but I believe the table support is not yet at 1.0. The new tables are
InnoDB (http://www.innodb.com/, http://www.mysql.com/doc/I/n/InnoDB.html)
and Berkeley DB (aka BDB) (http://www.sleepycat.com/,
http://www.mysql.com/doc/B/D/BDB.html). These tables are included in the
MySQL-Max distribution, or you can ./configure to your pleasure if you are
building from source. There's also the Gemini table from NuSphere
(http://www.nusphere.com/products/mysqladv.htm) that has been the cause of
a big debate over software licenses, trademarks, and domain names
(http://slashdot.org/article.pl?sid=01/07/12/1453210), which may or may
not have been resolved (I saw a note at unixreview.com that said that the
debate had been resolved and software released under the GPL, but that the
web sites didn't reflect this yet).
AFAIK, all these tables support transactions and row-level locking
(though I'm not sure about BDB's locking).
> If you're doing any serious sort of web application my suggestion would
> be to make it as DB neutral as possible. It makes it a little more painful
> at first as you can't necessarily make use of feature X of database Y but
> later on this usually pays off. However as usual YMMV.
A note on switching databases: the ease at which you can do so may
depend on your programming interface. For instance, I'm using PHP, which
unfortunately means that I have separate mysql_*() and pg_*() functions.
I'm doing my best to hide this behind another layer of abstraction. Other
interfaces like Perl's DBI and Java's JDBC may provide an easier way to
move from one database to another.
On Mon, Feb 18, 2002 at 09:40:46AM -0500, Cole Tuininga <[EMAIL PROTECTED]> wrote:
> On Sun, 2002-02-17 at 12:58, [EMAIL PROTECTED] wrote:
> > I don't believe that MySQL has support for record locking (I may be
> > wrong)
>
> This is correct.
See above. This is dependent on the table type, I believe.
On Mon, Feb 18, 2002 at 11:37:51AM -0500, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> Got a lot of messages ahead of me and someone may have already
> posted this. See the analysis done by Tim "GeoCrawler" Perdue:
>
> http://www.phpbuilder.com/columns/tim20000705.php3?page=1
This column is almost 2 years old, and is now rather out-of-date with
respect to the current state of these projects.
--
Bob Bell Compaq Computer Corporation
Software Engineer 110 Spit Brook Rd - ZKO3-3/U14
TruCluster Group Nashua, NH 03062-2698
[EMAIL PROTECTED] 603-884-0595
*****************************************************************
To unsubscribe from this list, send mail to [EMAIL PROTECTED]
with the text 'unsubscribe gnhlug' in the message body.
*****************************************************************