Rej*_*jah 3 mysql innodb myisam
我在此页面上阅读了以下内容
http://dev.mysql.com/doc/mysql/en/server-system-variables.html
bulk_insert_buffer_size MyISAM 使用特殊的树状缓存来使 INSERT ... SELECT、INSERT ... VALUES (...)、(...)、... 和 LOAD DATA INFILE 的批量插入更快。此变量以每个线程的字节数限制缓存树的大小。将其设置为 0 将禁用此优化。注意:此缓存仅在向非空表添加数据时使用。默认值为 8MB。这个变量是在 MySQL 4.0.3 中添加的。这个变量以前被命名为 myisam_bulk_insert_tree_size。
我认为这意味着 bulk_insert_buffer_size 对 InnoDB 表没有影响,只对 MyISAM 表有影响。这样对吗?
是的,你是对的。我之前写过这个:如何优化这个需要保存 5+ 百万行的 mySQL 表?
在批量加载 InnoDB 表时,最常被忽略的禁用设置之一是innodb_doublewrite。

请注意系统表空间文件内的双写缓冲区ibdata1。每次将 16K 页写入 InnoDB 表或事务日志时,该页首先写入双写缓冲区。您需要做的就是禁用它,加载您的数据,然后重新启用它。
mysql -uroot -p... -ANe"SET GLOBAL innodb_fast_shutdown = 0"
Run Code Online (Sandbox Code Playgroud)
service mysql restart --innodb-doublewrite=0
Run Code Online (Sandbox Code Playgroud)
service mysql restart
Run Code Online (Sandbox Code Playgroud)
您也可以禁用外键检查和唯一检查。任何标准的 mysqldump 都已经为你做到了。