在本地Mysql工作台导入大型CSV非常慢

问题描述 投票:0回答:1

我想将 60mb 的 csv 文件导入到我的 Mysql 工作台中。 问题是我使用了导入向导,它已经运行了2天,只完成了60%左右。 我正在本地计算机上使用工作台。 我怎样才能更快地完成这件事?

mysql
1个回答
0
投票

我建议通过

LOAD
命令从 CSV 加载大数据

LOAD DATA LOCAL INFILE '/<absolute_path_in_your_local_machine>/partial_data.csv'
INTO TABLE dummySchema.yourTableName
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
  • IGNORE 1 LINES
    用于忽略第一行,该行通常定义 CSV 文件中的列名称。
  • LINES TERMINATED BY '\r\n'
    子句特别适用于 Windows 文件,但对于 Linux 和 macOS 文件应仅包含
    '\n'
  • 对于 Windows 用户,请在目录/文件夹路径中添加双反斜杠
    \\
    LOAD DATA LOCAL INFILE 'D:\\partial_data.csv'

现在,我们需要了解一些事情;

  • 如果我们从您的本地计算机/客户端加载数据,我们需要添加
    LOCAL
    。否则将使用
    LOAD DATA INFILE
  • 非常准确地说,我在 MySQL 5.xx 中遇到了一个问题,默认情况下
    LOCAL
    选项被禁用,我们面临类似的问题

错误 2068 (HY000):由于访问限制,加载数据本地 INFILE 文件请求被拒绝。

所以我们应该通过带有标志

--local-infile
的命令行登录MySQL 示例
mysql -h <host> -u <user_name> -p -P <port> --local-infile

  • 如果有人遇到权限问题,请检查当前用户的授权并仔细检查是否允许加载文件
    SHOW GLOBAL VARIABLES LIKE 'local_infile';
    应该是
    ON
    并且当前用户有足够的访问权限

show grants for current_user();

© www.soinside.com 2019 - 2024. All rights reserved.