删除后的数据库内存浪费

时间:2013-04-03 05:32:01

标签: mysql memory-management auto-increment

我有30甚至更多这些表,并且所有表都将其主键设置为自动递增,因此每当我执行删除操作时,如删除10个表中的30个记录,则删除后300个存储单元将始终保持空白,因为主键设置为auto -increment。因此,对于非常大的数据库,请考虑相同的情况,以便如何解决此问题并再次重用这些内存单元。

3 个答案:

答案 0 :(得分:1)

主键不是指任何类型的“存储单元”,它只是一个计数器,为每一行提供一个唯一的数字。

理论上可以使用所有可能的密钥,但我不确定MySQL是否会尝试使用已删除的旧值(它不应该)。但考虑到未签名的BIGINT字段可以达到18,446,744,073,709,551,615(18 quintillion),你不可能遇到它的问题。

答案 1 :(得分:1)

好了它的自动增量,所以你无法帮助它。这里没有内存浪费。

答案 2 :(得分:0)

自动增量只是一个反击。它与记忆无关。 PK列不是完整的数学系列这一事实根本不影响性能。删除唯一影响的是回滚日志。如果要删除表中的所有数据,最好将其截断。

mysql内存模型很复杂。有关概述,您可以从mysql开发文档中查看this article