一个sql文本包含大概1200万条sql语句,除了建4张表其他都是insert语句。现在通过cmd命令方式登陆mysql,执行如下语句:
mysql -uroot -p
MYPASSWORD
use MYDBNAME;
set global innodb_flush_log_at_trx_commit = 2;
set global sync_binlog = 2000;
以上innodb_flush_log_at_trx_commit 和 sync_binlog 是网上查的命令,说是可以提高读取速度,有点一知半解,但实际执行速度并不快:
Query OK, 3180 rows affected (3.77 sec)
Records: 3180 Duplicates: 0 Warnings: 0
大概意思是每次插入 3180行需要3.77秒,请问有什么办法优化参数,可以提高执行速度?
使用 Navicat for MySQL 导出和导入
或者使用MySQL Workbench 导出和导入
想要插入快,可以把该表上的索引先去掉,插入后再加回来,不过数据量小没有必要这样玩
每秒接近1000条,也就可以了
你想快,那就应该从库里导出数据文件,而不是sql语句
mysql的神器, load data 语法去导入文件,而不是直接执行sql文件,之前亲测,500w的数据,秒级入库,
或者是dmp文件,mysql没有试过大文件,但是oracle,10g的dmp文件,搭配ssd,感觉就40多s就导入了