我在MYSQL数据库中有一个大约45GB的表,我的磁盘可用空间是30GB。表类型为MyISAM,MySQL版本为5.6。我想在名为name和text的表的两列上创建FULLTEXT,其中name是varchar(255),text是longtext。
创建索引时,MYSQL是否会创建与表大小(45GB)大小相同的临时表?
哪个更好用:
ALTER TABLE在上面的上下文中添加FULLTEXT或CREATE FULLTEXT INDEX?
答案 0 :(得分:2)
两个命令是相同的(一个映射到另一个)。它将使用其所有新索引生成表的完整副本。因此,由于您的可用磁盘空间少于表大小,因此无法实现。
获得更大的机器?删除其他东西?做其他清理吗?
进一步注意,FT索引本身可能接近45GB。因此,即使您可以创建索引,它也可能会溢出30GB。
InnoDB的FULLTEXT
似乎创建了一个小得多的索引。但是,如果没有超过 45GB的可用空间,转换到InnoDB是不可能的。