如何在MySQL数据库中插入超过一百万条记录?
我有一个sql文件,其中包含超过一百万条insert语句。MySQL管理的官方工具无法打开它,因为它太大了。是否可以使用BASH脚本插入记录 到目前为止我试过这个,但不起作用如何在MySQL数据库中插入超过一百万条记录?,mysql,linux,bash,Mysql,Linux,Bash,我有一个sql文件,其中包含超过一百万条insert语句。MySQL管理的官方工具无法打开它,因为它太大了。是否可以使用BASH脚本插入记录 到目前为止我试过这个,但不起作用 while read line do mysql -u root --password=root << eof use dip; $line; eof done < $1 读取行时 做 mysql-u root--password=rootmysql-u root--pa
while read line
do
mysql -u root --password=root << eof
use dip;
$line;
eof
done < $1
读取行时
做
mysql-u root--password=rootmysql-u root--password=rootmysql-u root--password=root试试这个:
while read line
do
mysql -u root --password=root -c "$line"
done < $1
读取行时
做
mysql-u root--password=root-c“$line”
已完成<$1
注:
如果sql包含双引号(“
),则必须对其进行转义
如果SQL语句跨越多行,您必须弄清楚这一点
此方法的优点是每一行都有自己的事务,而如果您启动整个文件,它可能会因为更改集太大而导致日志崩溃。请尝试以下操作:
while read line
do
mysql -u root --password=root -c "$line"
done < $1
读取行时
做
mysql-u root--password=root-c“$line”
已完成<$1
注:
如果sql包含双引号(“
),则必须对其进行转义
如果SQL语句跨越多行,您必须弄清楚这一点
这种方法的优点是每一行都有它自己的事务,而如果你启动整个文件,它可能会破坏日志,这是一个非常好的解决方案。我只需要添加-D dip
来选择我想要的数据库。@Tomas,对了,我只阅读了mysql
行,因此假设您拥有调用中的所有内容,抱歉。这是一个很好的解决方案。我只需要添加-D dip
来选择我想要的数据库。@Tomas,对了,我只阅读了mysql
行,因此假设您已经调用了所有内容,对不起。