Cita: Sin embargo, a mí por experiencia siempre me ha dado menos problemas la solución de borrar por completo la base de datos, recrearla vacía y después hacer el import.
Ciertamente un drop table, create table e insert es el método más seguro en la importación, pero no es óptimo en todos los escenarios, la seguridad tiene un costo y puede que supere los beneficios, tienes casos como:
1. Importar datos incrementales, comenté el ejemplo de modelos históricos o data warehouse donde se necesita importar datos nuevos manteniendo los actuales, en este caso es más eficiente insertar solo los datos nuevos que eliminar y crear las tablas e insertar los datos viejos más los nuevos (parámetro TABLE_EXISTS_ACTION=APPEND).
2. Importar datos reemplazando los existentes, en el caso de necesitar vaciar una tabla antes de importar, y si la estructura de la tabla no cambia o no tiene relaciones FK/PK, es más eficiente hacer un truncate table e importar que hacer un drop table, create table e importar (parámetro TABLE_EXISTS_ACTION=TRUNCATE)
3. Importar tablas nuevas, en el caso de ampliar un modelo de datos existente manteniendo intactas las tablas actuales, es más eficiente crear solo las tablas nuevas e importar que hacer un drop para crear e importar las tablas nuevas más la viejas (parámetro TABLE_EXISTS_ACTION=SKIP).
Un drop de todo más un import full es simple, fácil y seguro, en general va bien para bases de datos pequeñas o medianas. Afinar la importación tiene más riesgo y complejidad pero es recomendado para bases de datos grandes donde recrear todas las tablas llevaría tiempos inviables.
Saludos