Thanks, Rama,

I'm using MyISAM, in part because I want to use full text indexing, when
binary search mode stabilizes in 4.0.1. I don't believe that full text
indexing is supported by innodb. I'm also a little reluctant to go to
innodb because of the added complexity of the system.

Bob

"Ramaraju.R.V" wrote:
> 
> You are using InnoDB or MyISAM???
> 
> If u r going for InnoDB,
> Refer to InnoDB Engine manual for the version 3.23.47 at www.innodb.com.
> Here you details of different LOCK types.
> You can select the appropriate lock type at row level for different
> possibilities.
> 
> Hope this works!!
> 
> Cheers :)
> Rama Raju
> 
> -----Original Message-----
> From: Bob Sidebotham [mailto:[EMAIL PROTECTED]]
> Sent: Monday, January 07, 2002 2:00 PM
> To: [EMAIL PROTECTED]
> Subject: Re: LOCK TABLES issue
> 
> I'll try posting this again, because nobody has replied to it.
> 
> To put the problem more succinctly: I think there is a flaw in the mysql
> LOCK statement semantics, because if I use LOCK then all tables that are
> accessed while the LOCK is active must be locked for READ or WRITE
> access (or insert, but that doesn't help me). This is done I think to
> protect the application writer against accidently not getting locks that
> are required. What is needed is an explicit way to allow a particular
> table to participate while the LOCK statement is active, but without
> locking it. I've suggested that LOCK ... table NOLOCK would be an
> appropriate addition to the LOCK statement for these semantics--it
> allows a table to be explicitly left unlocked. More details are
> available in my original post, which is included here.
> 
> I would appreciate comments on this.
> 
> (If there's a better place to post this, can someone let me know that,
> too?).
> 
> Thanks,
> Bob
> 
> Bob Sidebotham wrote:
> >
> > I have an application with fairly typical locking requirements: 99% of
> > the requests are read-only (with an exception that I will specify).
> > Update requests are relatively rare. There's a half-dozen tables, and
> > since the inter-relationships are a little complex. I found it easiest,
> > given the performance constraints of my application, to simply lock ALL
> > the tables for READ for the read requests, and to lock ALL of them for
> > WRITE in the case of an update. I think this is a fine, time-tested,
> > conservative locking strategy. It basically can't fail, and gives me
> > adequate performance for my needs.
> >
> > I have ONE table which records access counts/times for each user for
> > individual objects in the system. This table needs to be updated on
> > every access. This table can be updated correctly without obtaining any
> > locks. It is subject to being read at unpredictable times during any of
> > the read-only requests.
> >
> > Since the access table can be read during any of the read-only requests,
> > and since it can be read at any time during the transaction, I have to
> > obtain at least a READ lock for this table along with the other locks
> > (even though I don't really need a read-lock) because MySQL insists that
> > if any tables are locked, then every table you wish to access must also
> > be locked (I assume this feature is intended as a reasonable precaution
> > against accidently forgetting to lock a table that must participate in a
> > "transaction"). Unfortunately, to update this table I have to either
> > upgrade to a WRITE lock or drop the lock altogether. It's obvious that
> > upgrading to a WRITE lock will cause all my read-only operations to
> > pileup on the WRITE lock. It's also possible for me to drop all the
> > locks (and record the accesses at the very end of the transaction). Less
> > obvious, but I think true, is that this *also* causes serialization,
> > because MySQL must implicitly require all the READ locks on the table to
> > be dropped before allowing me to update it (is this true? If it isn't
> > true, it should be!).
> >
> > I cannot, by the way, use READ LOCAL because I want to use both UPDATE
> > and REPLACE on the table.
> >
> > So I seem to be caught between a LOCK and a hard place, so to speak.
> >
> > What I would like to see would be something like:
> >
> > LOCK TABLES t1 READ, t2 READ, t3 NOLOCK;
> >
> > The semantics of this would be to explicitly recognize that t3 does not
> > need to be locked and can therefore be read or written after this LOCK
> > TABLES request (as opposed to any table that is not mentioned which
> > cannot be read or written). NOLOCK would, of course, be incompatible
> > with READ or WRITE locks, but would be compatible with other NOLOCK
> > locks or with no lock at all, for both read and write operations.
> >
> > If anyone can suggest another way to do this, I'd appreciate it.
> > Otherwise, is there any reaction to this proposal? Does anyone think
> > this is useful functionality?
> >
> > Thanks,
> > Bob Sidebotham
> >
> > ---------------------------------------------------------------------
> > Before posting, please check:
> >    http://www.mysql.com/manual.php   (the manual)
> >    http://lists.mysql.com/           (the list archive)
> >
> > To request this thread, e-mail <[EMAIL PROTECTED]>
> > To unsubscribe, e-mail
> <[EMAIL PROTECTED]>
> > Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
> 
> ---------------------------------------------------------------------
> Before posting, please check:
>    http://www.mysql.com/manual.php   (the manual)
>    http://lists.mysql.com/           (the list archive)
> 
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail
> <[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
> 
> ---------------------------------------------------------------------
> Before posting, please check:
>    http://www.mysql.com/manual.php   (the manual)
>    http://lists.mysql.com/           (the list archive)
> 
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail <[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to