mysql - 如何将庞大的数据集加载到新创建的表中?

标签 mysql sql full-text-search full-text-indexing

我正在尝试将 FULLTEXT 索引到我的表中。那张表有 300 万条记录。使用 Alter table 语句或 Create index 语句插入该索引非常困难。因此,创建新表和第一个添加索引并加载数据的最简单方法。如何将现有表数据加载到新创建的表中?我正在使用 Xammp MySql 数据库。

最佳答案

我不知道为什么在现有表上创建全文索引会很困难。你只需要做:

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 少,但出于您的目的,您可能会发现这更方便。

关于mysql - 如何将庞大的数据集加载到新创建的表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27216065/

相关文章:

mysql - 以 'Totals' 作为最终列的 SQL 语句

mysql - 将 Rave 与 MyDac 结合使用

mysql - Join 查询的问题

sql - 将源自不同表的两个 postgresql tsvector 字段连接到单个 postgresql View 中,以启用联合全文搜索

java - 如何从本地计算机连接 CPanel MySql DB

SQL 性能,什么在 SELECT 和 WHERE 条件下执行得更快

mysql - 在使用逗号将键值存储在单个单元格中的情况下如何使用分组依据

postgresql - Multi-Tenancy PostgreSQL 数据库中全文搜索的索引策略

mysql - 是否可以计算每行与 MATCH AGAINST 匹配的单词数

mysql - 创建表 mySQL 语法错误