The answer is: well, it depends. Unfortunately, MySQL documentation on update_time
field in the information_schema.tables
is not too detailed, however, you can find the relevant information in the documentation on show table status statement, which also retrieves data from the information_schema.tables
view:
When the data file was last updated. For some storage engines, this value is NULL. For example, InnoDB stores multiple tables in its system tablespace and the data file timestamp does not apply. Even with file-per-table mode with each InnoDB table in a separate .ibd file, change buffering can delay the write to the data file, so the file modification time is different from the time of the last insert, update, or delete. For MyISAM, the data file timestamp is used; however, on Windows the timestamp is not updated by updates so the value is inaccurate.
In summary: if you want to use it with innodb, then you have to use file-per-table mode to have a chance to display this data (even then it will be inaccurate). MyISAM should be fine (unless you are using Windows). There is no mention of other storage engines.
Enabling the file-per-table mode on a large database will be quite a challenge, you may have to back up tables, drop them, change the setting, and then import them again. So, before rushing to do this, you must really carefully evaluate if this feature is worth the change. Furthermore, my understanding is that even if file-per-table mode is enabled, InnoDB only supports this property from version 5.7.2 as per the last developer comment on this feature request:
[15 Sep 2014 5:21] Marko Mäkelä Posted by developer:
WL#6658 implemented update_time for InnoDB tables in MySQL 5.7.2. Note that it
is not persistent across server restarts. WL#6917 was filed for making
update_time persistent.