- 浏览: 608494 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
fei33423:
同意你的说法. hbase 的强一致性分为两部分来说. 数据分 ...
浅谈Hbase 的强一致性 -
zengwenbo5566:
,高人,刚安装了 genymotion 那个附带 virtu ...
VirtualBox报错Unable to load R3 module GetLastError=1790 (VERR_UNRESOLVED_ERROR -
kabike:
QQ1289714862 写道这代码有问题吧 bar1 bar ...
AtomicBoolean运用 -
QQ1289714862:
这代码有问题吧 bar1 bar2 那来的 你是不是new了两 ...
AtomicBoolean运用 -
DEMONU:
需要依赖这么多东西啊
hbase 0.96和hadoop 2.2 java 客户端的jar依赖
mysql一般导入导出数据有两种方式,1是导出insert语句,然后插入,2是导出outfile,然后load data infile
实验用的的表如下
表里有30w数据
导出为outfile的方式为
导出的文件7M,里面就是逗号分割的数据
导出为insert文件的方式为
.\mysqldump.exe -u root -proot crap 20130208load > F:\temp\20130208load.sql
导出的文件8M,可以看到它导出的insert语句是insert into values()()()......的形式
下面准备导入到另一个数据allcrap_test中
1 insert 方法
mysql> use allcrap_test;
Database changed
mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)
mysql> source F:\\temp\\20130208load.sql
Query OK, 36537 rows affected (1.34 sec)
Records: 36537 Duplicates: 0 Warnings: 0
Query OK, 35535 rows affected (1.17 sec)
Records: 35535 Duplicates: 0 Warnings: 0
Query OK, 35537 rows affected (1.19 sec)
Records: 35537 Duplicates: 0 Warnings: 0
Query OK, 35536 rows affected (1.20 sec)
Records: 35536 Duplicates: 0 Warnings: 0
Query OK, 35544 rows affected (1.20 sec)
Records: 35544 Duplicates: 0 Warnings: 0
Query OK, 35540 rows affected (1.08 sec)
Records: 35540 Duplicates: 0 Warnings: 0
Query OK, 35542 rows affected (1.17 sec)
Records: 35542 Duplicates: 0 Warnings: 0
Query OK, 35534 rows affected (1.19 sec)
Records: 35534 Duplicates: 0 Warnings: 0
Query OK, 14695 rows affected (0.56 sec)
Records: 14695 Duplicates: 0 Warnings: 0
分为9次insert,差不多有10s
这里其实完全可以先把secondary索引去掉,然后插入,然后重建索引.
首先改下sqldump
.\mysqldump.exe --no-create-info -u root -proot crap 20130208load > F:\temp\20130208load_2.sql
加上了--no-create-info选项,没有导出DDL语句
这次先drop掉那个索引
alter table 20130208load drop index 20130208load_idx_uid
清空表(这是为了删除第一次导入的数据)
TRUNCATE table 20130208load
然后source命令
mysql> source F:\\temp\\20130208load_2.sql;
Query OK, 36537 rows affected (0.75 sec)
Records: 36537 Duplicates: 0 Warnings: 0
Query OK, 35535 rows affected (0.73 sec)
Records: 35535 Duplicates: 0 Warnings: 0
Query OK, 35537 rows affected (1.13 sec)
Records: 35537 Duplicates: 0 Warnings: 0
Query OK, 35536 rows affected (0.64 sec)
Records: 35536 Duplicates: 0 Warnings: 0
Query OK, 35544 rows affected (0.66 sec)
Records: 35544 Duplicates: 0 Warnings: 0
Query OK, 35540 rows affected (0.64 sec)
Records: 35540 Duplicates: 0 Warnings: 0
Query OK, 35542 rows affected (0.67 sec)
Records: 35542 Duplicates: 0 Warnings: 0
Query OK, 35534 rows affected (0.92 sec)
Records: 35534 Duplicates: 0 Warnings: 0
Query OK, 14695 rows affected (0.33 sec)
Records: 14695 Duplicates: 0 Warnings: 0
这次明显快多了,大概6.47s.
最后把secondary索引加上去就行了
2 然后试下load data infile
创建用于load data infile的表
create table 20130208load_infile like crap.20130208load
有索引的情况下load
9s
试下没有索引时候,用同样的load语句,花了5.2s多.
另外看了这篇文章
http://venublog.com/2007/11/07/load-data-infile-performance/
谈到了一些优化,在我的windows机器上,innodb_flush_method是无效的,
设置了innodb_doublewrite=0以后,变成了4.6s
这里有人谈到了,如果把load data infile的大文件拆分成若干个小文件,会不会提高性能.
从他的结果来看,貌似提高不明显.
http://www.mysqlperformanceblog.com/2008/07/03/how-to-load-large-files-safely-into-innodb-with-load-data-infile/
另外吐槽下Navicat里执行source命令居然报语法错误 Err 1064,还是在mysql自带的客户端执行能好使.
哦?我这边没问题啊.我mysql是5.1的.
实验用的的表如下
show create table 20130208load; CREATE TABLE `20130208load` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, `content` varchar(50) NOT NULL, PRIMARY KEY (`id`), KEY `20130208load_idx_uid` (`uid`) ) ENGINE=InnoDB
表里有30w数据
导出为outfile的方式为
SELECT * INTO OUTFILE 'F:\\temp\\20130122handler.txt' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' FROM 20130122handler;
导出的文件7M,里面就是逗号分割的数据
导出为insert文件的方式为
.\mysqldump.exe -u root -proot crap 20130208load > F:\temp\20130208load.sql
导出的文件8M,可以看到它导出的insert语句是insert into values()()()......的形式
下面准备导入到另一个数据allcrap_test中
1 insert 方法
mysql> use allcrap_test;
Database changed
mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)
mysql> source F:\\temp\\20130208load.sql
Query OK, 36537 rows affected (1.34 sec)
Records: 36537 Duplicates: 0 Warnings: 0
Query OK, 35535 rows affected (1.17 sec)
Records: 35535 Duplicates: 0 Warnings: 0
Query OK, 35537 rows affected (1.19 sec)
Records: 35537 Duplicates: 0 Warnings: 0
Query OK, 35536 rows affected (1.20 sec)
Records: 35536 Duplicates: 0 Warnings: 0
Query OK, 35544 rows affected (1.20 sec)
Records: 35544 Duplicates: 0 Warnings: 0
Query OK, 35540 rows affected (1.08 sec)
Records: 35540 Duplicates: 0 Warnings: 0
Query OK, 35542 rows affected (1.17 sec)
Records: 35542 Duplicates: 0 Warnings: 0
Query OK, 35534 rows affected (1.19 sec)
Records: 35534 Duplicates: 0 Warnings: 0
Query OK, 14695 rows affected (0.56 sec)
Records: 14695 Duplicates: 0 Warnings: 0
分为9次insert,差不多有10s
这里其实完全可以先把secondary索引去掉,然后插入,然后重建索引.
首先改下sqldump
.\mysqldump.exe --no-create-info -u root -proot crap 20130208load > F:\temp\20130208load_2.sql
加上了--no-create-info选项,没有导出DDL语句
这次先drop掉那个索引
alter table 20130208load drop index 20130208load_idx_uid
清空表(这是为了删除第一次导入的数据)
TRUNCATE table 20130208load
然后source命令
mysql> source F:\\temp\\20130208load_2.sql;
Query OK, 36537 rows affected (0.75 sec)
Records: 36537 Duplicates: 0 Warnings: 0
Query OK, 35535 rows affected (0.73 sec)
Records: 35535 Duplicates: 0 Warnings: 0
Query OK, 35537 rows affected (1.13 sec)
Records: 35537 Duplicates: 0 Warnings: 0
Query OK, 35536 rows affected (0.64 sec)
Records: 35536 Duplicates: 0 Warnings: 0
Query OK, 35544 rows affected (0.66 sec)
Records: 35544 Duplicates: 0 Warnings: 0
Query OK, 35540 rows affected (0.64 sec)
Records: 35540 Duplicates: 0 Warnings: 0
Query OK, 35542 rows affected (0.67 sec)
Records: 35542 Duplicates: 0 Warnings: 0
Query OK, 35534 rows affected (0.92 sec)
Records: 35534 Duplicates: 0 Warnings: 0
Query OK, 14695 rows affected (0.33 sec)
Records: 14695 Duplicates: 0 Warnings: 0
这次明显快多了,大概6.47s.
最后把secondary索引加上去就行了
alter table 20130208load add index 20130208load_idx_uid(uid);
2 然后试下load data infile
创建用于load data infile的表
create table 20130208load_infile like crap.20130208load
有索引的情况下load
load data INFILE 'F:\\temp\\20130208load.txt' INTO table 20130208load_infile FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
9s
试下没有索引时候,用同样的load语句,花了5.2s多.
另外看了这篇文章
http://venublog.com/2007/11/07/load-data-infile-performance/
谈到了一些优化,在我的windows机器上,innodb_flush_method是无效的,
设置了innodb_doublewrite=0以后,变成了4.6s
这里有人谈到了,如果把load data infile的大文件拆分成若干个小文件,会不会提高性能.
从他的结果来看,貌似提高不明显.
http://www.mysqlperformanceblog.com/2008/07/03/how-to-load-large-files-safely-into-innodb-with-load-data-infile/
另外吐槽下Navicat里执行source命令居然报语法错误 Err 1064,还是在mysql自带的客户端执行能好使.
评论
2 楼
kabike
2013-02-25
JasonWilliams 写道
导出为outfile方式的代码有点小问题吧。。执行时会报错啊
应该是
SELECT * FROM 20130122handler INTO OUTFILE 'F:\\temp\\20130122handler.txt'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
应该是
SELECT * FROM 20130122handler INTO OUTFILE 'F:\\temp\\20130122handler.txt'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
哦?我这边没问题啊.我mysql是5.1的.
1 楼
JasonWilliams
2013-02-22
导出为outfile方式的代码有点小问题吧。。执行时会报错啊
应该是
SELECT * FROM 20130122handler INTO OUTFILE 'F:\\temp\\20130122handler.txt'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
应该是
SELECT * FROM 20130122handler INTO OUTFILE 'F:\\temp\\20130122handler.txt'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
发表评论
-
mysql 5.7关闭password validation,为root设置空密码
2018-05-20 11:44 0在centos 7.4上yum安装了mysql 5.7后,发现 ... -
centos系统下mysql load data infile报错(ERROR 29 (HY000): File '/tmp/data.txt' not fo)
2014-11-10 17:00 991执行load data infile报错 引用ERROR 29 ... -
CP还是AP?
2013-09-11 11:30 7285根据CAP理论,分布式存储系统最多只能满足其中两项.因为P是必 ... -
mysql大战mongodb
2013-04-03 21:39 7382nosql真是风起云涌,其中mongodb号称是比较像传统关系 ... -
innodb index的DDL
2013-04-03 21:14 1019mysql的innodb表,如果想创建一个secondary ... -
mysql多列索引(Multiple-Part Index)多个列上range scan时使用in
2013-03-18 18:30 2398show create table 20130314t1 ... -
innodb不同事务隔离级别下行锁的释放
2013-03-13 19:37 4365innodb使用的是行锁,原来一直以为InnoDB不是只在最终 ... -
innodb的mvcc和read view
2013-03-03 12:18 6412最近读High Performance MySQL,里面提到了 ... -
Innodb log buffer的flush
2013-03-03 10:31 2520innodb为了保持事务的特性,需要redo log的支持, ... -
mysql case ... when语句的几个用法
2013-02-25 19:54 3994一般情况下,case ...when都 ... -
mysql的Late row lookups(延迟row查找)
2013-01-30 19:47 1842CREATE TABLE `20130122handler ... -
mysql Partition(分区)
2013-01-30 19:42 3147表数据量大的时候一般都考虑水平拆分,即所谓的sharding. ... -
innodb的buffer pool
2013-01-28 23:20 1778innodb是有buffer pool机制的,可以参考 htt ... -
mysql直接通过handler读取数据
2013-01-24 21:16 1467前几天在mysql文档中发现了它有个handlerhttp:/ ... -
mysql自带的性能测试工具mysqlslap
2013-01-24 21:14 1537想测试一下mysql的性能,可以使用它自带的工具mysqlsl ... -
mysql timestamp和int存储时间
2013-01-09 16:25 7786show create table 20130107date; ... -
[转载]MySQL索引背后的数据结构及算法原理
2012-12-29 16:46 921今天看到了一篇好文章,MySQL索引背后的数据结构及算法原理, ... -
mysql备份数据库权限
2012-11-12 17:35 1272不想用root用户备份mysql数据库,于是创建了专门用来备份 ... -
mysql的timestamp类型的列
2012-11-11 20:16 790用Mysql Query Browser 创建的表的某个列类型 ... -
mysql的PreparedStatement
2012-11-11 20:14 2210环境为 mysql 5.1.39 mysql-connecto ...
相关推荐
mysql快速导入百万级千万级数据 mysql快速导入百万级千万级数据 mysql快速导入百万级千万级数据 mysql快速导入百万级千万级数据 mysql快速导入百万级千万级数据 mysql快速导入百万级千万级数据
而如果只关注数据的快速导入导出,特别是当操作的表结构已经存在或者不需要备份时,使用 SELECT INTO OUTFILE 和 LOAD DATA INFILE 可能会更高效。 此外,MySQL的权限系统对于数据导入导出操作同样重要。数据库管理...
本文将深入探讨MySQL数据导入与导出的方法,通过实际案例解析,帮助读者快速掌握相关技巧。 #### 数据导出:MySQL的多种方式 ##### 1. 使用`SELECT INTO OUTFILE`语句导出数据 `SELECT INTO OUTFILE`是MySQL提供的...
自己用JAVA做的第一个swing程序,用来快速导入导出MySQL数据库,导入整个库6万条数据只需要5秒钟,处女作 见笑了。 使用方法:需要系统支持JAVA环境并安装了MySQL,直接运行MySQLdump.jar,填好相应设置项,点击...
`LOAD DATA INFILE` 是MySQL提供的一个高效的数据导入工具,它能够快速地从CSV或其他文本文件中导入数据。例如,如果你有一个名为`data.csv`的文件,你可以使用以下语句: ```sql LOAD DATA INFILE 'data.csv' ...
在本例中,提供的`excelImport.py`脚本应该包含了上述部分或全部逻辑,用于实现快速批量导入Excel数据到MySQL数据库。根据实际需求,你可以对脚本进行调整,例如适应不同的数据库字段结构或处理更多Excel文件。
`LOAD DATA INFILE` 是MySQL提供的一种直接从文件中读取数据并导入到表中的功能,尤其适用于大规模数据的快速导入。 - **命令格式**: ```sql LOAD DATA [LOCAL] INFILE 'file_name' [REPLACE | IGNORE] INTO ...
自己用JAVA做的第一个swing程序,用来快速导入导出MySQL数据库,导入整个库6万条数据只需要5秒钟,处女作 见笑了。 使用方法:需要系统支持JAVA环境并安装了MySQL,直接运行DBdump.jar,填好相应项,按步骤导入导出...
Hive 通常用于存储海量数据并进行批处理分析,而 MySQL 则用于存储结构化数据并提供快速查询服务。为了实现两者之间的数据交换,DataX 作为一种开源的数据同步工具被广泛应用。 #### 问题描述 在使用 DataX 将数据...
标题 "2021全年工作日假期周末mysql快速导入表" 涉及的主要知识点是MySQL数据库管理和数据导入。MySQL是一种流行的开源关系型数据库管理系统,它在处理大量数据时具有高效性和稳定性。在这个场景中,用户可以快速地...
mysql数据库大数据量导入导出多种方法,该文档详述SELECT * INTO和mysqldump导出方法。导入方法中包括导入sql,txt文件和load data三种方法
对于由`mysqldump`生成的.sql文件,可以使用`source`命令在MySQL客户端中执行文件内容,或者使用`mysqlimport`工具导入数据。 3. 对于csv文件,可以使用`LOAD DATA INFILE`配合`FIELDS TERMINATED BY`,`ENCLOSED ...
4. **数据映射**:在导入数据时,可能需要将Excel列与数据库表的字段进行映射,`Frm_SetColumns.cs`可能实现了这一功能,允许用户选择或指定Excel列对应数据库的哪个字段。 5. **SQL批量插入**:`Winform_...
MySQL 数据导入导出是数据库管理中的重要操作,用于数据迁移、备份、恢复或者在不同环境间同步数据。本文主要介绍两种常见的MySQL数据导入导出方法:`SELECT INTO OUTFILE`语句和`mysqldump`实用程序。 1. **使用 `...
【MySQL如何快速导入数据】 在日常的数据库管理中,快速导入数据是一项重要的技能,尤其是在处理大量数据时。本文主要探讨如何使用MySQL自带的命令行工具有效地导入数据,以提高效率和减少等待时间。 首先,避免...
MySQL提供了一个名为`LOAD DATA INFILE`的命令来快速导入TXT文件。你需要指定文件路径、分隔符和字段终止符。例如,如果TXT文件使用逗号分隔,可以这样写: ```sql LOAD DATA INFILE '/path/to/data.txt' INTO ...
在导入数据方面,MySQL-Front支持多种格式的数据文件,如CSV、TXT、XML等。用户可以选择要导入的文件,指定目标数据库和表,然后设置相应的导入选项,如字段分隔符、编码格式等。导入过程中,MySQL-Front会自动匹配...
在IT行业中,数据管理是一项关键任务,特别是在...通过以上步骤,我们可以有效地将`prov.csv`中的数据导入到MySQL数据库中,实现数据的快速迁移和测试数据的准备。熟练掌握这种方法对于提升数据库管理的效率至关重要。
描述中提到的“可直接导入数据库”,意味着这个文件(ChinaCity.sql)是一个SQL脚本文件,可以直接在MySQL数据库中执行以创建相应的数据表。这种方式非常便捷,避免了手动输入大量数据的繁琐工作。同时,数据表中的...