如何为非常大的表创建MYSQL FULLTEXT索引?

时间:2016-02-23 14:08:24

标签: mysql sql indexing

我在MYSQL数据库中有一个大约45GB的表,我的磁盘可用空间是30GB。表类型为MyISAM,MySQL版本为5.6。我想在名为name和text的表的两列上创建FULLTEXT,其中name是varchar(255),text是longtext。

创建索引时,MYSQL是否会创建与表大小(45GB)大小相同的临时表?

哪个更好用:

ALTER TABLE在上面的上下文中添加FULLTEXT或CREATE FULLTEXT INDEX?

1 个答案:

答案 0 :(得分:2)

两个命令是相同的(一个映射到另一个)。它将使用其所有新索引生成表的完整副本。因此,由于您的可用磁盘空间少于表大小,因此无法实现。

获得更大的机器?删除其他东西?做其他清理吗?

进一步注意,FT索引本身可能接近45GB。因此,即使您可以创建索引,它也可能会溢出30GB。

InnoDB的FULLTEXT似乎创建了一个小得多的索引。但是,如果没有超过 45GB的可用空间,转换到InnoDB是不可能的。