目录
- mysql导入sql文件慢、错等问题
- 1、命令行登录数据库
- 2、创建数据库
- 3、设置参数
- 4、使用某个数据库
- 5、手动开启事务
- 6、执行source导入sql文件
- 7、手动提交事务请求
- 8、还原最初的配置
- 9、注意事项
- 总结
mysql导入sql文件慢、错等问题
在服务开发过程经常有数据迁移、备份、sql导入需求,而在mysql导入sql文件过程中经常出现慢、错等问题,尤其是通过mysql客户端(比如Nacivat)导入速度更慢。
今天我们选用一个新的导入方案,用MySQL自带的source导入,进行部分自定义操作,速度更快、统一提交;原理:减少网络请求、关闭日志打印、关闭自动提交(开启手动提交),目的是均是为了提高导入效率。
废话少说,现在开始吧。
1、命令行登录数据库
mysql -uroot -p
2、创建数据库
如果数据库还没有创建的话
create database demo;
3、设置参数
#临时关闭二进制日志
set sql_log_bin=off;
#临时关闭事务自动提交
set autocommit=0;
4、使用某个数据库
use demo;
5、手动开启事务
start transaction;
6、执行source导入sql文件
- 1)linux环境
source .../test.sql
- 2)win环境
source D:\...\test.sql
或者
source D:/.../test.sql
7、手动提交事务请求
commit;
8、还原最初的配置
#恢复二进制日志
set sql_log_bin=on;
#恢复事务自动提交
set autocommit=1;
理想情况下数据一次性成功导入。
9、注意事项
1)表的最大容量问题 max_allowed_packet
show variables like '%max_allowed_packet%';
select @@max_allowed_packet;
查询:
手动设置
set global max_allowed_packet = 102410141024;
重启mysq才能生效
2) 表的大小写问题
有些业务有大写和小写的表,设置不区分,比如linux环境mysql默认区分;
但是win环境默认不区分;
因此必须保持一致
show variables like "%case%";
结果
原理
- lower_case_table_names = 0 区分大小写,默认是这种设置
- lower_case_table_names = 1 不区分大小写
当然,需要在配置文件中修改ini或者cnf 文件里添加。
原理可以参考如下:
3)导入数据时字符集设置问题
报错:mysql数据库导入出错
ERROR:Unknown command ‘\’
核对此数据的字符集和脚本文件里的字符集是否一直,核对后你就会恍然大悟!
这样核对!
除此之外、还有其他类似的设置问题,当然要举一反三!
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网(www.lsjlt.com)。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- Java 实体类如何进行赋值操作?(java实体类怎么赋值)
- Java 中 switch case 的具体用法有哪些?(switchcase在java中的用法)
- 如何在 Java EMqtt 中实现消息确认机制?(Java EMqtt怎样实现消息确认机制)
- Java 性能调优的有效手段有哪些?(Java性能调优有何有效手段)
- 探讨Uncomtrade数据库的安全防护措施
- Java 如何获取某个接口的实现类?(Java怎么获取某个接口的实现类)
- Java中如何正确使用 collections.shuffle 方法?(Java中collections.shuffle怎么使用)
- Java Swing 中常用的布局有哪些?(java swing常用布局有哪些)
- 如何通过 Java Reflection 获取泛型信息?(java reflection如何获取泛型信息)
- 如何自定义 Java 泛型通配符?(java泛型通配符怎么自定义)