当前位置:  开发笔记 > 后端 > 正文

MySQL刷新表 - 当前数据库还是每个数据库?

如何解决《MySQL刷新表-当前数据库还是每个数据库?》经验,为你挑选了3个好方法。

MySQL命令是否:

FLUSH TABLES;

刷新当前数据库中的每个表,还是服务器上的每个表?

我正在使用MySQL 5.0 - 文档不清楚,虽然它确实提到:

FLUSH TABLES WITH READ LOCK;

将对所有数据库执行此操作.

谢谢.



1> Brent..:

这是所有数据库.


@UltimateBrent :)

2> Bill Karwin..:

我试着看一下,但我也找不到权威的答案.

我像你一样查看了手册.

我发现了MySQL Internals文档FLUSH TABLES,但没有具体说明.

我甚至阅读了源代码mysql_server/sql/sql_base.cc但很快找不到答案.

我认为答案是开发人员认为非常明显的事情之一,他们永远不需要说出来.

根据内部文档,MySQL表缓存包含最近使用的表的列表.没有提到特定于数据库的表缓存,MySQL服务器中似乎只有一个表缓存.

FLUSH TABLES被描述为强制关闭所有打开的表(表缓存中的表).没有提到这仅限于一个数据库,但您可以在参数中指定单个表FLUSH TABLES.同样,我认为这默认适用于整个表缓存,因此适用于MySQL服务器上具有打开文件的所有数据库.



3> 小智..:

当你只做一个mysql_connect,然后"show tables"例如 - > mysql_error():没有选择数据库

与"刷新表"没有mysql_error,所以我认为答案是每个数据库

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有