user_id is the primary key..

relevant parts of show create table:
| plx_user |CREATE TABLE `plx_user` (
  `user_id` int(11) NOT NULL auto_increment,
  `is_deleted` int(11) NOT NULL default '0',
  `edit_counter` int(11) NOT NULL default '0',
  `sendlist_edit_counter` int(11) NOT NULL default '0',
  PRIMARY KEY  (`user_id`),
) TYPE=InnoDB |

and from the explains:
mysql> EXPLAIN SELECT * from plx_user where user_id = 190864 and
is_deleted = 0;
+----------+-------+---------------+---------+---------+-------+------+-------+
| table    | type  | possible_keys | key     | key_len | ref   | rows |
Extra |
+----------+-------+---------------+---------+---------+-------+------+-------+
| plx_user | const | PRIMARY       | PRIMARY |       4 | const |    1
|       |
+----------+-------+---------------+---------+---------+-------+------+-------+
EXPLAIN SELECT * from plx_user where user_id = 190864;
+----------+-------+---------------+---------+---------+-------+------+-------+
| table    | type  | possible_keys | key     | key_len | ref   | rows |
Extra |
+----------+-------+---------------+---------+---------+-------+------+-------+
| plx_user | const | PRIMARY       | PRIMARY |       4 | const |    1
|       |
+----------+-------+---------------+---------+---------+-------+------+-------+
1 row in set (0.05 sec)




On Thu, 2003-09-11 at 16:36, Heikki Tuuri wrote:
> Joe,
> 
> what does SHOW CREATE TABLE give as the table definition?
> 
> What do
> 
> EXPLAIN SELECT ... where user_id = 190864 and is_deleted = 0;
> 
> and
> 
> EXPLAIN SELECT ... where user_id = 190864;
> 
> say? If user_id is not the full primary key, then an index scan will happen
> and deadlocks of the type below are possible.
> 
> Best regards,
> 
> Heikki Tuuri
> Innobase Oy
> http://www.innodb.com
> Foreign keys, transactions, and row level locking for MySQL
> InnoDB Hot Backup - a hot backup tool for MySQL
> 
> Order MySQL technical support from https://order.mysql.com/
> 
> ----- Original Message ----- 
> From: "Joe Shear" <[EMAIL PROTECTED]>
> Newsgroups: mailing.database.myodbc
> Sent: Friday, September 12, 2003 1:53 AM
> Subject: innodb deadlock issue
> 
> 
> > I noticed this deadlock in show innodb status on a mysql 4.0.14 box
> > today.  Both transactions seem to be trying to execute the a query on
> > the same record, which I don't think should cause a deadlock.  What am I
> > missing?
> >
> > 030911 10:12:45
> > *** (1) TRANSACTION:
> > TRANSACTION 0 153127600, ACTIVE 53 sec, process no 18814, OS thread id
> > 484323467 starting index read, thread declared inside InnoDB 500
> > LOCK WAIT 7 lock struct(s), heap size 1024, undo log entries 4
> > MySQL thread id 1166811, query id 35192298 plaxo.com Updating
> > update plx_user   set sendlist_edit_counter = 53,       modified = now()
> > where user_id = 190864   and is_deleted = 0
> > *** (1) WAITING FOR THIS LOCK TO BE GRANTED:
> > RECORD LOCKS space id 0 page no 6829218 n bits 72 table user/plx_user
> > index PRIMARY trx id 0 153127600 lock_mode X waiting
> > Record lock, heap no 1 RECORD: info bits 0 0: len 9; hex
> > 73757072656d756d00; asc supremum.;;
> > *** (2) TRANSACTION:
> > TRANSACTION 0 153131209, ACTIVE 8 sec, process no 17896, OS thread id
> > 480604175 starting index read, thread declared inside InnoDB 0
> > 3 lock struct(s), heap size 320
> > MySQL thread id 1165903, query id 35188878 plaxo.com Updating
> > update plx_user   set edit_counter = edit_counter + 1,   modified =
> > now() where user_id = 190864
> > *** (2) HOLDS THE LOCK(S):
> > RECORD LOCKS space id 0 page no 6829218 n bits 72 table user/plx_user
> > index PRIMARY trx id 0 153131209 lock_mode X
> > Record lock, heap no 1 RECORD: info bits 0 0: len 9; hex
> > 73757072656d756d00; asc supremum.;;
> > *** (2) WAITING FOR THIS LOCK TO BE GRANTED:
> > RECORD LOCKS space id 0 page no 6829214 n bits 96 table user/plx_user
> > index PRIMARY trx id 0 153131209 lock_mode X locks rec but not gap
> > waiting
> > Record lock, heap no 2 RECORD: info bits 0 0: len 4; hex 8002e990; asc
> > ....;; 1: len 6; hex 000009208ab0; asc ... ..;;
> > *** WE ROLL BACK TRANSACTION (2)
> >
> > -- 
> > Joe Shear <[EMAIL PROTECTED]>
> >
> >
> > -- 
> > MySQL General Mailing List
> > For list archives: http://lists.mysql.com/mysql
> > To unsubscribe:
> http://lists.mysql.com/[EMAIL PROTECTED]
> >
-- 
Joe Shear <[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