A lot of my Innodb tables require 'defragmentaion'. My understanding is that 'OPTIMIZE' may not be the best way to do it. Some people suggest doing a 'ALTER TABLE' to have Mysql rebuild (and therefore defragment) the table.
Does anyone have any suggestions (based on experience) of whats the best way to defragment production Innodb tables?
To defragment innodb follow this. Since you say its a production DB you could do this -
Hope this helps..
The first thing I would do is run mysqldump to make sure I had a backup: http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
Maybe this is obvious but I would make that the first step