我今天正在索引一张包含20亿条记录的巨大桌子。我以为MySQL会吃掉我的2TB驱动器......磁盘消耗量一直增加到400GB然后再增加到500GB然后最终降到180GB,MySQL说成功添加了索引。为什么空间增加以及到底发生了什么?有人可以给我一些指示吗?
答案 0 :(得分:4)
顺便说一句,昨天我回答a question on how to make index creation faster in MySQL,以下内容来自我的研究:
CREATE INDEX
和DROP INDEX
命令通过创建使用请求的索引集定义的新空表来工作。然后,它将现有行逐个复制到新表,随时更新索引。以这种方式将条目插入到索引中,其中键值未被排序,需要随机访问索引节点,并且远非最佳。复制原始表中的所有行后,将删除旧表,并使用原始表的名称重命名该副本。