【问题标题】:How to insert over a million records into a MySQL database?如何将超过一百万条记录插入 MySQL 数据库?
【发布时间】:2012-02-05 11:19:17
【问题描述】:

我有一个包含超过一百万条插入语句的 sql 文件。 MySQL管理的官方工具由于其大小而无法打开。是否可以使用 BASH 脚本插入记录?

到目前为止,我已经尝试过了,但它不起作用。

while read line
do
    mysql -u root --password=root << eof
    use dip;
    $line;
    eof
done < $1

【问题讨论】:

    标签: mysql linux bash


    【解决方案1】:
    mysql -u root --password=root <mysqlfile.sql
    

    【讨论】:

    • 不错的解决方案。我只需要添加-D dip 来选择我想要的数据库。
    • @Tomas,对,我没有比mysql 行进一步阅读,因此假设您已在调用中拥有所有内容,抱歉。
    【解决方案2】:

    试试这个:

    while read line
    do
        mysql -u root --password=root -c "$line"
    done < $1
    

    注意事项:
    如果 sql 包含双引号 ("),你将不得不转义它们 如果 SQL 语句跨越多行,你必须弄清楚

    这种方法的优点是每一行都有自己的事务,而如果你触发整个文件,它可能会破坏日志作为一个如此大的更改集

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-04
      • 1970-01-01
      • 2023-01-31
      • 2012-05-16
      • 2011-02-15
      • 2013-11-10
      • 1970-01-01
      • 2017-09-01
      相关资源
      最近更新 更多