我在这一页上读到了以下内容
http://dev.mysql.com/doc/mysql/en/server-system-variables.html
bulk_insert_buffer_size MyISAM使用一个特殊的树状缓存来使批量插入更快.选择插入..。值(.)、(.)、.和加载数据信息。此变量限制每个线程缓存树的大小(以字节为单位)。将其设置为0将禁用此优化。注意:此缓存仅在向非空表中添加数据时使用。默认值为8MB。这个变量是在MySQL 4.0.3中添加的。这个变量以前名为myisam_bulk_insert_tree_size。
我认为这意味着bulk_insert_buffer_size对InnoDB表没有任何影响,只对MyISAM表有影响。这是正确的吗?
发布于 2013-09-12 17:47:11
是的,你是对的。我以前写过这个:如何优化这个需要容纳mySQL百万行的5+表?
WHen大容量加载InnoDB表,其中最常被忽略的禁用设置之一是诺姆b。

请注意系统表空间文件ibdata1中的双写缓冲区。每次向InnoDB表或事务日志写入16K页时,该页首先被写入双写缓冲区。您所需要做的就是禁用它,加载数据,并重新启用它。
mysql -uroot -p... -ANe"SET GLOBAL innodb_fast_shutdown = 0"的情况下重新启动mysql
service mysql restart --innodb-doublewrite=0service mysql restart您还可以禁用外键检查和唯一检查。任何标准的mysqldump都已经为您完成了。
发布于 2013-09-12 16:30:31
是的,它只适用于MyISAM表。
来实现unique_checks和foreign_key_checks
set unique_checks=0;set foreign_key_checks=0;diable auto_commit。
插入.
这提高了批量插入的性能。
https://dba.stackexchange.com/questions/49646
复制相似问题