今天我正在为一个包含 20 亿条记录的巨大表建立索引。我以为 MySQL 会吃掉我的 2TB 驱动器...磁盘消耗不断增加到 400GB,然后是 500GB,最后下降到 180GB,MySQL 说成功添加了索引。为什么空间会增加,最后发生了什么?有人可以给我一些指点吗?
顺便说一句昨天我回答了关于如何使MySQL中的索引创建更快的问题 https://stackoverflow.com/questions/3845181/does-mysql-use-existing-indexes-on-creating-new-indexes,以下是我的研究得出的结果:
The CREATE INDEX
and DROP INDEX
命令的工作方式是创建一个用所请求的索引集定义的新的空表。然后,它将现有行一一复制到新表中,同时更新索引。以这种方式将条目插入索引(其中键值未排序)需要随机访问索引节点,并且远非最佳。复制原始表中的所有行后,旧表将被删除,并使用原始表的名称重命名副本。
Source: 快速创建索引概述 http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-create-index-overview.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)