|
When it comes to InnoDB tables, there is no persistent update_time (or create_time, for that matter). That particular query might be executed without opening all tables internally, by simply returning 0 for those tables that do not exist in the cache.
MySQL 8.0 replaced the .frm file based data dictionary with the Global Data Dictionary, which stores the data dictionary information in InnoDB tables. They made most INFORMATION_SCHEMA tables views of existing tables. Those columns that are not stored in the dictionary would still be computed.
I believe that also MySQL 8.0 would open all tables for this query, to ask the storage engine to fill in the update_time, but that would be somewhat faster, because instead of reading a large number of .frm files, it would read the global data dictionary tables from the InnoDB buffer pool.
A long time ago, I wrote in MDEV-11655 some thoughts on designing and implementing a better data dictionary.
|