我在一个表中有 28 亿条记录。该表使用在 mysql 安装上运行的INFOBRIGHT引擎。我在表中有一些不正确的条目,希望更正它们。
表测试有 350 奇数列。我想将数据从P1列交换到P3列以获得一些记录(不是全部)。我计划进行数据迁移的方法如下
- 使用 mysql 的INTO OUTFILE 功能从表 Test 中提取数据到 CSV 文件
- 从表中删除不需要的记录。
- 使用LOAD DATA INFILE导入 CSV 数据并使用SET 子句将数据从 P1 移动到 P3(P1和 SET P1 = P3为空字符串)
这种方法似乎很有意义,直到我意识到 INFOBRIGHT 不支持此处提到的 SET 子句
以下链接的节选
SET 结构由标准 MySQL 下载中的 MySQL 加载程序支持,但 ICE 中包含的 Infobright 加载程序不支持。我能够使用 SET 语句实际执行加载;有趣的是它会运行但 SET 会被 Infobright 忽略。
问题
- 有没有更简单的方法来做到这一点?
- 当然,我可以编辑 CSV 文件。但是对于 28 亿条记录,我希望有一个确定的方法来做到这一点。任何经过测试的脚本表示赞赏。
- 我不想使用 mysql 加载程序并将数据加载到 MISAM 表中,因为涉及的数据量很大。那里有更快的方法吗?