8.5.5 Bulk Data Loading for InnoDB Tables 批量数据加载
2015-08-27 14:04
661 查看
8.5.5 Bulk Data Loading for InnoDB Tables 批量数据加载
当将数据导入到InnoDB,关掉自动提交模式,因为它执行一个log flush 到disk 对每次insert,
关闭自动提交在你的操作期间:
SET autocommit=0;
… SQL import statements …
COMMIT;
mysqldump 选项–opt 创建dump 文件快速导入到一个InnoDB表
mysql> create table t100(id int);
Query OK, 0 rows affected (0.43 sec)
mysql> create table t100_idx1 on t100(id);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘on t100(id)’ at line 1
mysql> create index t100_idx1 on t100(id);
Query OK, 0 rows affected (0.17 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> show create table t100\G;
[b]*****************[/b] 1. row [b]*****************[/b]
Table: t100
Create Table: CREATE TABLE
KEY
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.01 sec)
ERROR:
No query specified
如果你有一个唯一约束在第2个索引,你可以加速表导入通过临时的关闭uniqueness checks 。
SET unique_checks=0;
… SQL import statements …
SET unique_checks=1;
对于大表, 这样可以节省大量的磁盘I/O,因为InnoDB能使用它的改变的buffer 写到第一个索引记录以批量的方式,
小心数据不能包含重复的记录。
如果的有外键约束在你的表里,你可以加速表导入通过关掉外键约束检查。
SET foreign_key_checks=0;
… SQL import statements …
SET foreign_key_checks=1;
对于大表,这个可以节省磁盘I/O:
如果需要插入多行,使用多行插入语法来减少客户端和服务器之间的通信开销:
INSERT INTO yourtable VALUES (1,2), (5,5), …;
当将数据导入到InnoDB,关掉自动提交模式,因为它执行一个log flush 到disk 对每次insert,
关闭自动提交在你的操作期间:
SET autocommit=0;
… SQL import statements …
COMMIT;
mysqldump 选项–opt 创建dump 文件快速导入到一个InnoDB表
mysql> create table t100(id int);
Query OK, 0 rows affected (0.43 sec)
mysql> create table t100_idx1 on t100(id);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘on t100(id)’ at line 1
mysql> create index t100_idx1 on t100(id);
Query OK, 0 rows affected (0.17 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> show create table t100\G;
[b]*****************[/b] 1. row [b]*****************[/b]
Table: t100
Create Table: CREATE TABLE
t100(
idint(11) DEFAULT NULL,
KEY
t100_idx1(
id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.01 sec)
ERROR:
No query specified
如果你有一个唯一约束在第2个索引,你可以加速表导入通过临时的关闭uniqueness checks 。
SET unique_checks=0;
… SQL import statements …
SET unique_checks=1;
对于大表, 这样可以节省大量的磁盘I/O,因为InnoDB能使用它的改变的buffer 写到第一个索引记录以批量的方式,
小心数据不能包含重复的记录。
如果的有外键约束在你的表里,你可以加速表导入通过关掉外键约束检查。
SET foreign_key_checks=0;
… SQL import statements …
SET foreign_key_checks=1;
对于大表,这个可以节省磁盘I/O:
如果需要插入多行,使用多行插入语法来减少客户端和服务器之间的通信开销:
INSERT INTO yourtable VALUES (1,2), (5,5), …;
相关文章推荐
- Android 之窗口小部件详解
- 国内量化交易平台
- C#中实现文本框的滚动条自动滚到最底端
- 关于Nodejs的多进程模块Cluster
- 程序大作战,萌出一脸血!
- Linux cp 实现强行覆盖
- Unity+NGUI性能优化方法总结
- C# 工厂单例
- Nginx反向代理配置配置实例
- codeforces 343C Read Time 【二分】
- SQLiteManager 基本操作
- 黑马程序员——java基础 集合 (复习)
- 剑指offer-第五章优化时间和空间效率(数组中的逆序对的总数)
- tomcat 插件不显示和war不解压
- Android 4.4 Watchdog机制
- 手动配置SSH框架
- 剑指offer-第五章优化时间和空间效率(数组中的逆序对的总数)
- Web Rest和
- android 初级__进阶__总结_转载
- 我哥说的是对的