I have been wrestling with this problem for a couple of weeks and have been 
unable to find a solution.

The MySQL version is  5.0.37 and it is running on a Slackware Linux 11 box.

The problem:

A query that is selecting data for a report locks the files that it accesses 
forcing users who are attempting to enter transactions to wait until the select 
query is finished.

The query is sizable so I have not included it here (I can if that would be 
helpful.)  Explain shows (abbreviated):

id   select_type    table                type        possible keys              
              key_len   ref        rows         Extra
1    SIMPLE         transactions     ref           PRIMARY,person,organization  
  4            const    107448      *
1    SIMPLE         person             eq_ref      PRIMARY                      
           4    person_serial    1
1    SIMPLE         regs                 ref           transaction              
                  4    transactions_serial  1
1    SIMPLE         transaction_event ref        PRIMARY, transaction, receipt  
  4    transactions_serial    1
1    SIMPLE         receipt_master    ref         PRIMARY                       
          4    receipt_serial            1

The 107448 rows are the transactions for the organization I am reporting.  The 
person is linked directly to the transaction.  During the select query, the 
person table is locked thereby stopping updates to any person in the table.

I have always thought a select is only a read and would, therefore, not lock 
any tables.

Anyone have any ideas?

TIA,

Carl

Reply via email to