今天,我仔细研究了Flush语法。同时,我经常在工作中使用“刷新”命令。这是一个摘要。 MySQL FLUSH语法(清除或重新加载内部缓存)FLUSH flush_option [mysql,flush_option],如果要清除MySQL使用的某些内部缓存,则应使用FLUSH命令。为了执行FLUSH,您必须具有重新加载权限。
flush_option可以是以下任意一项:
FLUSHHOSTS是最常用和经常遇到的。主要用于清除主机缓存表。如果某些主机更改了IP号,或者如果收到错误消息Host ... isblocked,则应清除主机表。当连接到MySQL服务器时,对于给定的主机,连续发生超过max_connect_errors个错误,并且出于安全目的,MySQL将阻止来自主机的其他连接请求。清除主机表可以使主机尝试再次连接。
FLUSHLOGS关闭当前的二进制日志文件并创建一个新文件。新的二进制日志文件的名称将添加到当前二进制文件的编号中。
FLUSHPRIVILEGES也经常使用。重新授权后,为了使新权限立即生效,以防万一,通常会执行它。目的是将权限从数据库授权表重新加载到缓存中。
FLUSHTABLES关闭所有打开的表,此操作将清除查询缓存的内容。
带读取锁定的刷新表关闭所有打开的表,并向数据库中的所有表添加读取锁定,直到明确执行解锁表为止。此操作通常用于数据备份。
FLUSHSTATUS将大多数状态变量重置为0。
FLUSHMASTER删除二进制日志索引文件中的所有二进制日志文件,将二进制日志文件的索引文件重置为空,并创建一个新的二进制日志文件。但是,不再建议使用此方法并将其更改为重置主机。可以想象我曾经那么朴实。我可以用一个简单的命令来处理它,但是它花了几个命令。以前的方法是先查找当前的二进制日志文件名,然后使用清除操作。
FLUSHQUERY CACHE重新组织了查询缓存mysql,消除了碎片并提高了性能,但不影响查询缓存中的现有数据。这与“刷新表”和“重置查询缓存”(将清除查询缓存的内容)不同。
FLUSHSLAVE与重置复制相似。让从数据库忘记主数据库的复制位置,并删除已下载的中继日志。像母版一样,不建议使用它。将其更改为Reset Slave。这也非常有用。
通常来说,刷新操作将记录在二进制日志文件中,但是FLUSH LOGS,FLUSH MASTER,FLUSH SLAVE,带有读取锁定的FLUSH TABLES将不会记录,因此,如果上述操作记录在二进制日志文件中,它将对数据库产生影响。注意:“重置”操作实际上是“刷新”操作的增强版本。