In the last episode (Sep 29), Daevid Vincent said:
> I'm doing some reading on INSERT DELAYED
> http://dev.mysql.com/doc/refman/5.0/en/insert.html
> 
> I have a user_log table:
> 
> CREATE TABLE `user_log` (
>   `id_user_log` bigint(20) unsigned NOT NULL auto_increment,
>   `id_user` int(10) unsigned default '0',
>   `created_on` timestamp NOT NULL default CURRENT_TIMESTAMP on update 
> CURRENT_TIMESTAMP,
>   `type` 
> enum('View','Action','Admin','Search','Login','Logout','Access','General',' 
> API') NULL,
>   `source` enum('web','mobile') character set latin1 collate 
> latin1_general_ci default 'web',
>   `body` text character set latin1 collate latin1_general_ci,
> ) ENGINE=InnoDB
>
> We are noticing a lot of these in the logs however:
> 
> Sep 29 03:05:02 pse05 mysqld[14640]: TRANSACTION 0 62715480, ACTIVE 0 sec, 
> process no 14639, OS thread id 2904791952 inserting
> Sep 29 03:05:02 pse05 mysqld[14640]: mysql tables in use 1, locked 1
> Sep 29 03:05:02 pse05 mysqld[14640]: LOCK WAIT 4 lock struct(s), heap size 
> 320, undo log entries 1
> Sep 29 03:05:02 pse05 mysqld[14640]: MySQL thread id 8330, query id 799424 
> 10.10.10.46 OMT_Master update
> Sep 29 03:05:02 pse05 mysqld[14640]: INSERT INTO user_log (`id_user`, `type`, 
> `source`, `body`) VALUES ...)
> Sep 29 03:05:02 pse05 mysqld[14640]: *** (1) WAITING FOR THIS LOCK TO BE 
> GRANTED:
> 
> So I'm thinking we could use the DELAYED or LOW_PRIORITY.

INSERT DELAYED only works on MyISAM, MEMORY, and ARCHIVE tables.  You'll get
a 1616 error if you try it on InnoDB.  MySQL 5.5 is supposed to have a lot
of concurrency improvements in; can you test your application on that and
see if it's any faster than 5.0?

-- 
        Dan Nelson
        dnel...@allantgroup.com

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to