Check: This will search for any large inconsistencies or to try and determine if a table has crashed. If you do see anything listed in Check, run Repair first to try and resolve any issues.

Optimize: This tool should be performed when you delete or modify several records from the table [or when frequent changes are made to the database in a short period of time]. It will reclaim the used space, defragment the data file, and remove the overhead. Since it also sorts the indexes it can help with query time in the future.

Repair: Essentially only really useful when tables have crashed, have open connections that create issues when you try to run queries or optimization. This is also the tool to use if you suspect data corruption [either from improperly closed connections like server crashes or manually killing MySQL processes] and would like to make sure everything is running well.