How can I *actually* defragment my InnoDB tables?
You can either recreate your table or use "optimize table" command to rebuild your table.  Highly recommend making a backup just in case.

https://dev.mysql.com/doc/refman/5.7/en/optimizing-innodb-storage-layout.html
https://mariadb.com/kb/en/mariadb/optimize-table/