Home  >  Article  >  Database  >  MySQL写入大量数据

MySQL写入大量数据

WBOY
WBOYOriginal
2016-06-07 15:20:341347browse

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 1、对于MyISAM类型的表,可以通过一下方式快速的导入大量的数据。 ALTER TABLE tbl_name DISABLE KEYS; loading the data ALTER TABLE tbl_name ENABLE KEYS; 这两个命令用来打开或者关闭MyISAM表非

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  1、对于MyISAM类型的表,可以通过一下方式快速的导入大量的数据。

  ALTER TABLE tbl_name DISABLE KEYS;

  loading the data

  ALTER TABLE tbl_name ENABLE KEYS;

  这两个命令用来打开或者关闭MyISAM表非唯一索引的更新。在导入大量的数据到一个非空的MyISAM表时,通过设置这两个命令,可以提高导入的效率。对于导入大量数据到一个空的MyISAM表,默认就是先导入数据然后才创建索引的,所以不用进行设置。

  3、而对于Innodb类型的表,这种方式并不能提高导入数据的效率。对于Innodb类型的表,有以下几种方式可以提高导入效率:

   因为Innodb类型的表是按照主键的顺序保存的,所以将导入的数据按照主键的顺序排列,可以有效的提高导入数据的效率。如果Innodb表没有主键,那么系统默认创建一个内部列作为主键,所以如果可以给表创建一个主键,将可以利用这个优势提高导入数据的效率。

   在导入数据前执行SET UNIQUE_CHECKS=0,关闭唯一性校验,在导入结束后执行SET UNIQUE_CHECKS=1,恢复唯一性校验,可以提高导入的效率。

   如果应用使用自动提交的方式,建议在导入前执行SET AUTOCOMMIT=0,关闭自动提交,导入结束后再执行SET AUTOCOMMIT=1,打开自动提交,也可以提高导入效率。

MySQL写入大量数据

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn