Do regular ALTERs weaken the performance? In a project, we need to frequently ALTER the tables to delete or add columns. I wonder if this weakens the database performance in long term. If it has a considerable negative impact, what is the approach to keep the database healthy and efficient?

I was thinking of the following approaches:


OPTIMIZE the tables
CREATE a new database with the final architecture, and INSERT the entire data


The database is mysql(5.5) with InnoDB.
It's an intuitively-sensible concern that you've raised because it would seem to make sense that frequent DDL operations might leave little bits of messiness behind, but my experience has been that this concern is unfounded with InnoDB.

Prior to MySQL 5.6, the vast majority of ALTER TABLE operations actually rebuild the entire table with the new structure, copy all the data, then swap in the new table and delete the old one... so, I see very little potential for frequent changes to have a negative impact down the road.

You might, though, be well-advised to OPTIMIZE TABLE on tables where you've repeatedly inserted and deleted test data to clean up wasted disk space and rebuild the indexes, but unless your test data has been comparable in size to your production data, even this will disappear in the mix as the tables take on live data.