开发者

如何解决mysql导入sql文件慢、错等问题

目录
  • mysql导入sql文件慢、错等问题
    • 1、命令行登录数据库
    • 2、创建数据库
    • 3、设置参数
    • 4、使用某个数据库
    • 5、手动开启事务
    • 6、执行source导入sql文件http://www.devze.com
    • 7、手动提交事务请求
    • 8、还原最初的配置
    • 9、注意事项
  • 总结

    mysql导入sql文件慢、错等问题

    在服务开发过程经常有数据迁移、备份、sql导入需求,而在mysql导入sql文件过程中经常出现慢、错等问题,尤其是通过mysql客户端(比如Nacivat)导入速度更慢。

    今天我们选用一个新的导入方案,用MySQL自带的source导入,进行部分自定义操作,速度更快、统一提交;原理:减少网络请求、关闭日志打印、关闭自动提交(开启手动提交),目的是均是为了提高导入效率。

    废话少说,现在开始编程客栈吧。

    1、命令行登录数据库

    mysql -uroot -p

    如何解决mysql导入sql文件慢、错等问题

    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、http://www.devze.com还原最初的配置

    #恢复二进制日志
    set sql_log_bin=on;
    #恢复事务自动提交
    set autocommit=1;

    理想情况下数据一次性成功导入。

    9、注意事项

    1)表的最大容量问题 max_allowed_packet

    show variables like '%max_allowed_packet%javascript';
    select @@max_allowed_packet;

    查询:

    如何解决mysql导入sql文件慢、错等问题

    手动设置

    set global max_allowed_packet = 1wpVUDcAPk02410141024;

    重启mysq才能生效

    2) 表的大小写问题

    有些业务有大写和小写的表,设置不区分,比如linux环境mysql默认区分;

    但是win环境默认不区分;

    因此必须保持一致

    show variables like "%case%";

    结果

    如何解决mysql导入sql文件慢、错等问题

    原理

    • lower_case_table_names = 0 区分大小写,默认是这种设置
    • lower_case_table_names = 1 不区分大小写

    当然,需要在配置文件中修改ini或者cnf 文件里添加。

    原理可以参考如下:

    3)导入数据时字符集设置问题

    报错:mysql数据库导入出错

    ERROR:Unknown command ‘\’

    核对此数据的字符集和脚本文件里的字符集是否一直,核对后你就会恍然大悟!

    如何解决mysql导入sql文件慢、错等问题

    这样核对!

    除此之外、还有其他类似的设置问题,当然要举一反三!

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新数据库

    数据库排行榜