【问题标题】:Load data infile with blob field使用 blob 字段加载数据文件
【发布时间】:2018-08-24 20:29:12
【问题描述】:

鉴于我必须在短时间内转储大量插入,我设法将所有记录转储到文件中,然后通过 mysql 的 load data infile 语句加载它们。这工作正常,但现在我将更多的值压缩到一个 blob 字段中以减少插入。问题是我找不到将 blob 字段转储到文件中的方法,因此在加载数据时会插入正确的值。我尝试了不同的方法,但没有一个圆满的结局,想避免一一插入。

有谁知道如何正确地做到这一点?

【问题讨论】:

  • 如何使 blob 成为 csv 类型的实体,字段周围有引号,字段之间有逗号。这行得通吗?
  • 现在我想一想,你怎么可能比从普通文本文件加载数据文件更快?我相信,即使您将所有数据放入一个 blob 中,也必须在服务器上完成相同数量的插入(更像是更新)。
  • 我试过了,但没有正确插入 blob 字段。使用 load data infile 插入行应该比一个一个地执行更高效。目前我正在使用像“INSERT INTO TABLE VALUES (),(),(),..”这样的插入,这比单独插入每个插入要好。

标签: mysql load-data-infile


【解决方案1】:

将 Blob 数据的 HEX() 字符串存储在文件中。

对于您的 SQL,请使用 SET 子句。例如:

LOAD DATA INFILE 'path/to/file.txt'
INTO TABLE mytable
(column1, column2, @hexColumn3)
SET column3=UNHEX(@hexColumn3);

【讨论】:

    猜你喜欢
    • 2016-09-02
    • 2012-02-04
    • 1970-01-01
    • 2014-07-24
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多