Changes in MySQL 8.0 During tablespace import operations, partition tablespace file names on disk are checked and modified if necessary to ensure lowercase delimiters and partition names. Queries and stored program definitions from MySQL 8.0.12 or lower that use  ASC  or  DESC  qualifiers for GROUP BY  clauses should be amended. Otherwise, upgrading to MySQL 8.0.13 or higher may fail, as may replicating to MySQL 8.0.13 or higher replica servers. For consistency with  InnoDB ,  NDB  releases based on MySQL 8.0.16 or higher use a generated constraint name if the  CONSTRAINT  symbol  clause is not specified, or the  CONSTRAINT  keyword is specified without a  symbol .  NDB  releases based on MySQL 5.7 and earlier MySQL 8.0 releases used the  FOREIGN KEY  index_name  value. The changes described above may introduce incompatibilities for applications that depend on the previous foreign key constraint naming behavior. MySQL 8.0 comes with improved defaults, aiming at the best out of the box experience possible. These changes are driven by the fact that technology is advancing (machines have more CPUS, use SSDs and so on), more data is being stored, MySQL is evolving (InnoDB, Group Replication, AdminAPI), and so on. The following table summarizes the defaults which have been changed to provide the best MySQL experience for the majority of users. 277 Changed Server Defaults SQL Changes • InnoDB  statistics data for related issues introduced by previous bug fixes. •As of MySQL 8.0.21, a warning is written to the error log at startup or when upgrading from MySQL 5.7 if tablespace data files are found to reside in unknown directories. Known directories are those defined by the  datadir ,  innodb_data_home_dir , and  innodb_directories  variables. To make a directory known, add it to the  innodb_directories  setting. Making directories known ensures that data files can be found during recovery. For more information, see Tablespace Discovery During Crash Recovery. • Incompatible change : As of MySQL 8.0.13, the deprecated  ASC  or  DESC  qualifiers for  GROUP BY clauses have been removed. Queries that previously relied on  GROUP BY  sorting may produce results that differ from previous MySQL versions. To produce a given sort order, provide an  ORDER BY  clause. •Some keywords may be reserved in MySQL 8.0 that were not reserved in MySQL 5.7. See Section 9.3, “Keywords and Reserved Words” . This can cause words previously used as identifiers to become illegal. To fix affected statements, use identifier quoting. See Section 9.2, “Schema Object Names” . •After upgrading, it is recommended that you test optimizer hints specified in application code to ensure that the hints are still required to achieve the desired optimization strategy. Optimizer enhancements can sometimes render certain optimizer hints unnecessary. In some cases, an unnecessary optimizer hint may even be counterproductive. • Incompatible change : In MySQL 5.7, specifying a  FOREIGN KEY  definition for an  InnoDB  table without a  CONSTRAINT  symbol  clause, or specifying the  CONSTRAINT  keyword without a  symbol , causes InnoDB  to use a generated constraint name. That behavior changed in MySQL 8.0, with  InnoDB  using the  FOREIGN KEY  index_name  value instead of a generated name. Because constraint names must be unique per schema (database), the change caused errors due to foreign key index names that were not unique per schema. To avoid such errors, the new constraint naming behavior has been reverted in MySQL 8.0.16, and  InnoDB  once again uses a generated constraint name.