【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博客
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)