What causes there to be overhead data in a table?
One of the causes is deletion of records. When you delete the records, mysql, empties the records space, but doesn't remove that record (i.e in certain cases, depending upon, where your record was)
You can recover the space by executing
Well are there ways of optimizing record deletions so it wont cause overhead date?
Well, I am not sure! Usually it is taken as normal for the "overhead" in MySQL operations. This overhead is usally not much for normal operations (unless you have a very fragmented table)
Well usually you can do a OPTIMIZE once a week to keep the table in good condition.