When it comes to large tables with hundreds of GB data amd rows and a lot of writing the situation changes, indexes can degrade in performance. In most practical cases innodb also does a good job, you do not need to recreate indexes. In most practical cases innodb is the best choice and it's supposed to keep indexes working well. Since mysql 8.0 myisam is slowly phasing into deprecated status, innodb is the current main storage engine. To date (mysql 8.0.18) there is no suitable function inside mysql to re-create indexes.