mysql数据库delete删除将近80的记录后数据库的文件大小依然不变

你创建数据库的时候给了数据库大小的初始值,当你数据量没达到初始值的时候,数据库文件大小是不会变化的
mysql数据库delete删除将近80的记录后数据库的文件大小依然不变
你创建数据库的时候给了数据库大小的初始值,当你数据量没达到初始值的时候,数据库文件大小是不会变化的2012-05-10
碎片整理啊:ANALYZE TABLE2012-05-09
MySQL 8.0.16 已经发布,它像往常一样增强了组复制 Group Replication 功能。
这篇文章介绍了 MySQL 8.0.16 为 Group Replication 带来的新功能:
Message fragmentation(信息碎片化)。

背景
Group Replication 目前使用 XCom(一种组通信引擎),特点:原子性,组员状态检测等。每个成员的组复制插件先将信息转发到本地 XCom,再由 XCom 最终以相同的顺序将信息传递给每个组成员的 Group Replication 插件。
XCom 由单线程实现。当一些成员广播信息过大时,XCom 线程必须花费更多的时间来处理那个大信息。如果成员的 XCom 线程忙于处理大信息的时间过长,它可能会去查看其他成员的 XCom 实例。例如,忙碌的成员失效。如果是这样,该组可以从该组中驱逐忙碌的成员。
MySQL 8.0.13 新增 group_replication_member_expel_timeout 系统变量,您可以通过它来调整将成员从组中驱逐的时间。例如,怀疑成员失败,但成员实际上忙于处理大信息,给成员足够的时间来完成处理。在这种情况下,是否为成员增加驱逐超时的设置是一种权衡。有可能等了很久,该成员实际真的失效了。

Message fragmentation(信息碎片化)
MySQL 8.0.16 的 Group Replication 插件新增用来处理大信息的功能:信息碎片化。
简而言之,您可以为成员的广播信息指定最大值。超过最大值的信息将分段为较小的块传播。
您可以使用 group_replication_communication_max_message_size 系统变量指定允许的信息最大值(默认值为10 MiB)。

示例
让我们用一个例子来解释新功能。图1显示了当绿色成员向组广播信息时,新功能是如何处理的。

图1 对传出信息进行分段
1. 如果信息大小超过用户允许的最大值(group_replication_communication_max_message_size),则该成员会将信息分段为不超过最大值的块。
2. 该成员将每个块广播到该组,即将每个块单独转发到XCom。
XCom 最终将这些块提供给组成员。下面三张图展示出了中间绿色成员发送大信息时工作的新特征。

图2a 重新组合传入的信息:第一个片段
3. 成员得出结论,传入的信息实际上是一个更大信息的片段。
4. 成员缓冲传入的片段,因为他们认为片段是仍然不完整的信息的一部分。(片段包含必要的元数据以达到这个结论。)

图2b 重新组合传入的信息:第二个片段
5. 见上面的第3步。
6. 见上面的第4步。

图2c 重新组合传入的信息:最后一个片段
7. 成员得出结论,传入的信息实际上是一个更大信息的片段。
8. 成员得出结论,传入的片段是最后一个缺失的块,重新组合原始信息,然后对其进行处理,传输完毕。

结论
MySQL 8.0.16 已经发布后,组复制现在可以确保组内交换的信息大小不超过用户定义的阈值。这可以防止组内误判而驱逐成员。
2020-06-03
mengvlog 阅读 28 次 更新于 2025-09-09 06:46:16 我来答关注问题0
  •  翡希信息咨询 如何在MySQL中使用DELETE语句删除指定条件的记录?

    在MySQL中使用DELETE语句删除指定条件的记录的步骤如下:基本语法:使用DELETE FROM语句,后跟表名和WHERE子句。语法结构为:DELETE FROM table_name WHERE condition;指定条件删除:在WHERE子句中设置具体的条件,以精确删除所需的数据。例如,删除w3cschool_tbl表中w3cschool_id为3的记录,命令为:DELETE FROM...

  • 定期备份:如果有定期的数据库备份,可以直接从备份中恢复被删除的数据。恢复步骤:根据备份的类型,使用相应的恢复命令或工具将数据恢复到删除之前的状态。利用二进制日志:启用二进制日志:MySQL的二进制日志记录了所有对数据库进行更改的操作,包括DELETE操作。恢复步骤:如果启用了二进制日志,可以使用mysqlb...

  • 在MySQL中,要从数据库中删除一条特定数据,首先需要找到该数据的主键。主键是唯一标识表中每一行数据的字段,通常用于定位具体的数据记录。一旦确定了要删除的记录的主键值,就可以通过执行DELETE语句来删除这条数据。假设我们有一个名为users的表,其中包含用户的基本信息。为了删除一个特定用户的记录,我...

  • MySQL中删除含有某字段的数据可以使用DELETE语句。以下是对此操作的 一、明确目标字段 在删除操作前,需要明确知道要删除的数据所在的字段名称。这是确定删除条件的关键。二、使用WHERE子句确定删除条件 DELETE语句通常与WHERE子句结合使用,以指定删除哪些记录。若要删除含有特定字段值的记录,可以在WHERE子句中...

  •  文暄生活科普 在mysql数据库中,如何快速删除数据?

    在MySQL中处理数据删除任务时,有三种主要方法:DELETE、TRUNCATE和DROP。每种方法都有其独特优势和应用场合,下面详细探讨这些方法。DELETE操作适用于删除满足特定条件的数据行。使用方法如下:DELETE语句仅标记数据为已删除状态,不实际释放磁盘空间。在删除数据后,执行optimize table table_name操作可立即释放...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部