主页
文章
知识库
云盘
工具
登录
登录
注册
忘记密码
反馈
文章
MySQL source命令导入sql文件太慢
MySQL source命令导入sql文件太慢
lyjin
2023-10-16
> 有一个较大的SQL文件,通过source命令导入到MySQL数据库中时导入太慢。 > 存储引擎选择的时Innodb > MySQL版本为8.0.34 # 解决办法 ## 1.设置ulimit ```shell # ulimit -n //默认是1024 指定同一时间最多可开启的文件数 65535 # vim /etc/security/limits.conf //尾部添加以下内容 * soft nofile 65535 * hard nofile 65535 # sysctl -p //如果ulimit查看未改变,退出重新登录 ``` ## 2.优化my.cnf ```shell max_allowed_packet=160M //最大数据包大小 open_files_limit=65535 //可打开的最大文件数 innodb_buffer_pool_instances=4 //内存缓冲池数,默认1 innodb_open_files=65535 //innodb可打开的最大文件数 innodb_read_io_threads=20 //读写线程数,默认值4 innodb_write_io_threads=20 //读写线程数,默认值4 innodb_buffer_pool_size,也是很重要的配置参数,但是调整这个参数,并不起作用。 ``` ## 3. 优化SQL文件 > MySQL默认是自动提交的,每次INSERT操作都会触发一个提交,这会极大地减慢导入速度。可以在导入前设置SET autocommit=0;并在导入结束后执行COMMIT; 在sql文件的开始位置添加一下代码: ```sql #关闭二进制日志 set sql_log_bin=off; #关闭事务自动提交 set autocommit=0; # 开启事务 start transaction; ``` 在sql文件的最后添加一下代码: ```shell # 提交 commit; #开启二进制日志 set sql_log_bin=on; #开启事务自动提交 set autocommit=1; ```
分享
×
用手机扫码分享
没有评论
请登陆后评论
新建评论
移除
关闭
提交