Mysql

使用MySql遇到的问题总结

Mybatis-Plus批量存储慢

mybatis-plus提供的saveBatch方法批量存储时为单条sql执行,存储速度慢,不适合大量数据存储,官方提供了insert into的sample需要开发人员自己单独集成。
官方示例

Mysql导入大文件

Navicate执行大文件sql脚本时,速度慢还容易失败。所以直接在mysql中操作文件的导入。

  • 进入mysql
    mysql -u root -p
  • 创建数据库
    create database <dbName>;
  • 设置参数
    如果不关闭log会导致binlog过大,使用navicate导入时,因为存储的binlog过大,导致mysql无法启动,删除binlog后mysql正常启动
    set sql_log_bin=OFF;
    set autocommit=0;
  • 使用数据库
    use <dbName>;
  • 开启事务
    start transaction;
  • 开始导入
    sqlFilePath是你的sql文件路径
    source <sqlFilePath>;
  • 执行完成后提交
    commit;

    记录binlog过大导致mysql无法启动的问题

    错误信息
    2020-07-28T02:23:28.308800Z 0 [ERROR] [MY-010846] [Server] MYSQL_BIN_LOG::open_purge_index_file failed to open register file.
    2020-07-28T02:23:28.308848Z 0 [ERROR] [MY-010817] [Server] MYSQL_BIN_LOG::open_index_file failed to sync the index file.
    2020-07-28T02:23:28.308882Z 0 [ERROR] [MY-010119] [Server] Aborting
    解决办法
    删除/var/lib/mysql目录下的binlog文件,docker容器启动的mysql则删除映射目录下的binlog文件
    cd /var/lib/mysql
    rm -rf binlog.0*
    echo > binlog.index