美文网首页大数据 爬虫Python AI Sql
Mysql怎样提高导入速度?

Mysql怎样提高导入速度?

作者: 默直 | 来源:发表于2019-10-24 21:36 被阅读0次

Mysql提高导入速度

我们在利用source导入数据到mysql时,会由于数据量大(百M级)比较大,速度及其缓慢。要怎么处理这种问题呢?

一般sql文件导入数据库命令是:

mysql>use mysql_db;

mysql>source /tmp/mysqlfile.sql

根据Mysql官方建议,有几个措施可以提高导入速度:

1.对于MyISAM,调整系统参数:bulk_insert_buffer_size(至少单个文件大小的2倍以上)

2.对于InnoDB,调整系统参数:innodb_log_buffer_size(至少单个文件大小的2倍以上,导入完成后可以改回默认的8M,注意不是innodb_buffer_pool_size。)

3.除主键外,删除其他索引,导入完成后重建索引。

4.关闭自动提交:autocommit=0。(请勿用set global autocommit=1;命令来关闭,否则整个MySQL系统都会停止自动commit,innodb log buffer很快就会爆满,5和6项也请仅在会话中有效,正确做法请往下看

5.关闭唯一索引检查:unique_checks=0。(关闭了这一项会影响onduplicate key update的效果)

6.关闭外键检查:foreign_key_checks=0。

7.insert值写在一条语句内,如:INSER TINTO yourtable VALUES(1,2),(5,5),...;

8.有自增列的,设置:innodb_autoinc_lock_mode的值为2,

其中,第1-2、8条在修改my.cnf文件,然后重启MySQL:

[mysqld]

bulk_insert_buffer_size=2G;

innodb_log_buffer_size=2G;

innodb_autoinc_lock_mode=2;

第3条用到的命令:

#删除索引

DROPINDEX index_name ON talbe_name

ALTER TABLE table_name DROP INDEX index_name

ALTER TABLE table_name DROP PRIMARY KEY

# 添加索引ALTER TABLE table_name ADD INDEX index_name (column_list)

ALTER TABLE table_name ADD UNIQUE (column_list)

ALTER TABLE table_name ADD PRIMARY KEY (column_list)

第4-6条写在.sql中,批量bash脚本如下:

for SQL in *.sql;

do

         echo $SQL;  

         sed -i '1i\SET autocommit=0;\nSET unique_checks=0;\nSET foreign_key_checks=0;' $SQL

           sed -i '$a\COMMIT;\nSET autocommit=1;\nSET unique_checks=1;\n SET foreign_key_checks=1;' $SQL

done

相关文章

  • Mysql怎样提高导入速度?

    Mysql提高导入速度 我们在利用source导入数据到mysql时,会由于数据量大(百M级)比较大,速度及其缓慢...

  • 怎样提高阅读速度

    最近看了一本书,叫《快速阅读》。 这本书主要介绍快速阅读的具体方法。 学会快速阅读的技巧,不仅能改善我们的理解力,...

  • 要想深入理解mysql索引?这16个点你必须要了解!

    前言 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 打个比方,如...

  • 9.MySQL索引

    索引 索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。因此,数据...

  • MySQL索引的使用

    MySQL索引 MySQL索引可以快速提高MySQL的检索速度。索引分单列索引和组合索引单列索引:即一个索引只包含...

  • Mysql索引

    简介 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 好处 打个比...

  • MySQL 索引

    索引可以大大提高MySQL的检索速度,同时却会降低更新表的速度(INSERT、UPDATE和DELETE)。 单列...

  • workerman,swoole 数据库长连接的 重连问题

    为了更高效的服务器访问速度,我们会使用mysql 或者其他数据库的长连接 来提高访问速度,以下内容以mysql p...

  • 如何快速吸引读者读你的书?【笔记】

    速度!!创作速度,更新速度。 一、节奏要快 怎样才能让读者沉迷在你写的书里面?怎样提高读者对你写的书的认可度?怎样...

  • mysql索引

    索引 mysql索引的建立对于mysql的高效运行是很重要的,索引可以大大提高mysql的检索速度。索引分单列索引...

网友评论

    本文标题:Mysql怎样提高导入速度?

    本文链接:https://www.haomeiwen.com/subject/alzuectx.html