Hrm, I could be wrong....the MySQL site says innodb uses row-level
locking, and BDB uses page-level locking.  But I remember reading that
Innodb uses memory page level locking.  Am I wrong?

At any rate, even if InnoDB is page-level locking, you still get the
benefits on a page-level, which is very close to row-level locking. 
And no, they're not misrepresented, it's just easier for most MySQL
users to understand "row-level" rather than "memory page level" when
they're "close enough".  Many MySQL users are self-taught.

And of course, I could be wrong, it could be true row-level locking. 
You haven't posted your version of MySQL, nor your "SHOW CREATE TABLE"
on the table in question.  Those would be helpful.

-Sheeri

On 2/10/06, George Law <[EMAIL PROTECTED]> wrote:
> I have also seen the table locking on deletes and even on large selects
> with INNODB.  I had converted to INNODB strictly for the "row level
> locking" that is the biggest selling point of using INNODB.
>
> So all the avantages of INNODB that are advertised (ie - row level
> locking) are mis-represented?
>
> Right from the mysql website:
>
>
> " 14.2.1. InnoDB Overview
>
> InnoDB provides MySQL with a transaction-safe (ACID compliant) storage
> engine that has commit, rollback, and crash recovery capabilities.
> InnoDB does locking on the row level and also provides an Oracle-style
> consistent non-locking read in SELECT statements. These features
> increase multi-user concurrency and performance. There is no need for
> lock escalation in InnoDB because row-level locks fit in very little
> space."
>
>
>
> > -----Original Message-----
> > From: sheeri kritzer [mailto:[EMAIL PROTECTED]
> > Sent: Friday, February 10, 2006 9:52 AM
> > To: Ady Wicaksono
> > Cc: mysql@lists.mysql.com
> > Subject: Re: Innodb table locked on delete
> >
> > Innodb is not row-level locking -- it's
> > memory-page-level-locking.  A memory page is usually small,
> > so it's almost like row-level locking, but not quite.
> > Perhaps you're running up against that?
> >
> > What does the query log say which queries were running?  How
> > do you know it's the delete that's taking the lock, and not
> > an update (the error message said an update or a delete)?
> >
> > -Sheeri
> >
> > On 2/10/06, Ady Wicaksono <[EMAIL PROTECTED]> wrote:
> > > So where's the row locking?
> > >
> > > I configure my database with Innodb + READ COMMITED, by this
> > > configuration by using autocommit=1, delete should be done
> > on data commited to disk.
> > > Other thread should be able to insert/update.
> > >
> > > CMIIW
> > >
> > >
> > > > Tables are locked on delete because, like an update, they are
> > > > changing data.
> > > >
> > > > Imagine issuing a REPLACE statement after a DELETE statement.  If
> > > > the DELETE locks the table, then the REPLACE happens AFTER the
> > > > DELETE, as you wanted.  If the DELETE does not lock the
> > table, then
> > > > it's possible the REPLACE will happen before the DELETE, and the
> > > > DELETE will delete the row you just replaced.
> > > >
> > > > -Sheeri
> > > >
> > > > On 2/9/06, Ady Wicaksono
> > <[EMAIL PROTECTED]> wrote:
> > > >> Why table locked on delete?
> > > >>
> > > >
> > > >
> > >
> > >
> >
> > --
> > MySQL General Mailing List
> > For list archives: http://lists.mysql.com/mysql
> > To unsubscribe:
> > http://lists.mysql.com/[EMAIL PROTECTED]
> >
> >
>
>
>

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to