索引操作究竟发生了什么?

时间:2010-10-03 07:58:12

标签: mysql database

我今天正在索引一张包含20亿条记录的巨大桌子。我以为MySQL会吃掉我的2TB驱动器......磁盘消耗量一直增加到400GB然后再增加到500GB然后最终降到180GB,MySQL说成功添加了索引。为什么空间增加以及到底发生了什么?有人可以给我一些指示吗?

1 个答案:

答案 0 :(得分:4)

顺便说一句,昨天我回答a question on how to make index creation faster in MySQL,以下内容来自我的研究:

  

CREATE INDEXDROP INDEX命令通过创建使用请求的索引集定义的新空表来工作。然后,它将现有行逐个复制到新表,随时更新索引。以这种方式将条目插入到索引中,其中键值未被排序,需要随机访问索引节点,并且远非最佳。复制原始表中的所有行后,将删除旧表,并使用原始表的名称重命名该副本。

     

来源:Overview of Fast Index Creation