【FAQ】【MySQL 8+】CRUD等操作修改数据库的表后,数据库中表相关信息与数据库工具所展示的信息不一致

相关转载:

mysql8.0 数据库中表的行数不显示,大小也不显示_-CSDN问答

MySQL8.0 存储表的行数和修改日期不自动更新的问题_mysql表插入数据,但是修改日期无值-CSDN博客

=============================================================

个人总结:

本人一开始上手的就是MySQL8+的版本(现在算是知道为啥很多都在5.6版本左右了XD)

MySQL8前,会通过information_schema的表来获取一些元数据,例如auto_increment,indexes表获取索引等,我们利用一些数据库工具,例如dbeaver或者Navicat等,可以很直观地看到这些信息;

 但是MySQL8后,这些数据就不那么准确了,具体表现为:对数据库进行写或者删,修改自增值等这些操作后,保存,发现它展示的数据和实际出入相差甚远(后来发现只是信息没有同步,但是实际的数据库是没有问题的),看了参考后,应该是数据字典的缓存有问题,没有实时更新真实的数据。

 

那么最简单粗暴的解决方法,使用数据库命令去立即更新信息:

analyze table 表名

但是参考也提到,每次都要手动更新,那么tables表存在的意义就不大了,因此参考文章,修改字典缓存的更新速率(它默认是86400,也就是24小时,把它改为0,即可实现实时更新)

设置的相关操作参考:MySQL设置information_schema_stats_expiry 为0_mob64ca12df277e的技术博客_51CTO博客

本人是windows版的mysql,进入到安装的文件夹中,找到my.ini文件,打开(记事本开就行),在最下面添加这段:

information_schema_stats_expiry=0

保存,重启mysql服务(我直接重启电脑...)

重启MySQL教程:MySQL_Windows 下重启MySQL服务_win7 mysql重启bin目录下的-CSDN博客,大差不差!

MySQL设置information_schema_stats_expiry 为0_mob64ca12df277e的技术博客_51CTO博客
posted @ 2024-01-20 17:14  Morning枫  阅读(5)  评论(0编辑  收藏  举报