【发布时间】:2014-11-30 17:30:04
【问题描述】:
我正在尝试将 FULLTEXT 索引到我的表中。该表包含 300 万条记录。使用 Alter table 语句或 Create index 语句插入该索引非常困难。因此最简单的方法是创建新表和第一次添加索引并加载数据。如何将现有表数据加载到新创建的表中?我正在使用 Xammp MySql 数据库。
【问题讨论】:
标签: mysql sql full-text-search full-text-indexing
我正在尝试将 FULLTEXT 索引到我的表中。该表包含 300 万条记录。使用 Alter table 语句或 Create index 语句插入该索引非常困难。因此最简单的方法是创建新表和第一次添加索引并加载数据。如何将现有表数据加载到新创建的表中?我正在使用 Xammp MySql 数据库。
【问题讨论】:
标签: mysql sql full-text-search full-text-indexing
我不知道为什么在现有表上创建全文索引会很困难。你只需这样做:
create fulltext index idx_table_col on table(col)
通常,向已加载的表添加索引比将数据加载到具有预定义索引的空表中更快。
编辑:
您可以使用insert 进行加载。以下将插入前 100,000 行:
insert into newtable
select *
from oldtable
order by id
limit 0, 100000;
您可以将它放在一个循环中(通过 MySQL 中的存储过程或在应用程序级别)。也许这会更快地返回。每次运行时,都会更改limit 中的偏移值。
我希望创建索引的总时间会比使用insert 少,但出于您的目的,您可能会发现这更方便。
【讨论】:
INSERT INTO newTable SELECT * FROM oldTable;
在创建新表和索引后。 这是因为您要复制所有列。您也可以选择特定的列。
【讨论】: