InnoDB Slower Update Performance

Yesterday, i had locking table problem in myIsam table. The solution proposed is to change existing myIsam table into InnoDB table. So we changed the engine table as proposed. For information, my existing table had about 50000 rows. Atfer changing the table functionality test was performed and the program worked well. But we notice another problem when real load is applied to the application. we notice the reduced TPS.

From mysql command “show full processlist”, we saw UPDATE query in action.

So in default localhos mysql server i tried to run that run the same query againts +- 5000 rows innodb table & +-5000 rows myIsam table

UPDATE testisam SET sent = sent + 1 WHERE id = ‘5000’;

Table isam, 100 query update on particular row

Id            sent       startupdate                        endupdate
5000       99           2015-09-23 15:48:53        2015-09-23 15:48:53

execution time ~ 1 s

 

UPDATE testinno SET sent = sent + 1 WHERE id = ‘5000’;

Table inno, 100 query update on particular row

Id            sent       startupdate                        endupdate
5000       99           2015-09-23 15:47:07        2015-09-23 15:47:11

execution time ~5 s

From the result above, in default configuration, UPDATE query to single row on innodb table will take longer time than myIsam table. While it is true that InnoDB engine will prevent table locking, several tuning and changes in query should be made in order to work well with InnoDB table.

So because this “tuning & changes in query” will take sometime to learn/read. I decided to revert back to MyIsam table.. 😛

 

Leave a Reply

Your email address will not be published. Required fields are marked *