Three common MySQL database design mistakes include suboptimal data type selection, missing or redundant indexes, and improperly storing semi-structured data. Selecting an inappropriate data type can lead to insufficient storage space or over-provisioned columns with performance implications. Missing or redundant indexes can negatively impact query performance and storage costs. Storing semi-structured data as JSON using a dedicated column type can improve efficiency, enable native querying and filtering, and support indexing for faster searches.