栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何提高大型InnoDB表的DELETe FROM性能?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何提高大型InnoDB表的DELETe FROM性能?

该解决方案完成后可以提供更好的性能,但是该过程可能需要一些时间才能实现。

BIT
可以添加一个新列,默认
TRUE
为“活动”和
FALSE
“非活动”。如果状态不够,则可以使用
TINYINT
256个可能的值。

添加此新列可能会花费很长时间,但是一旦结束,您的更新就应该快得多,只要您

PRIMARY
像删除操作一样,不对这个新列编制索引就可以了。

InnoDB之所以花这么长时间

DELETE
在如此庞大的表上,是因为集群索引。它根据您的
PRIMARY
,首先
UNIQUE
找到的表或可以找到的合适的替代表(如果找不到
PRIMARY
或)将
UNIQUE
其物理排序,因此,删除一行后,它现在将整个表在磁盘上重新排序以提高速度,碎片整理。所以花的时间不是
DELETE
那么长;这是删除该行后的物理重新排序。

创建固定宽度的列并对其进行更新而不是删除时,由于行和表本身消耗的空间是恒定的,因此无需对巨大的表进行物理重新排序。

在下班时间,

DELETE
可以使用一个来删除不必要的行。与删除单个行相比,此操作将仍然很慢,但总体上要快得多。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/432886.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号