在虚拟机上测评了下MySQL 和 PostgreSQL 的各种LOAD FILE方式以及时间。 因为是虚拟机上的测评,所以时间只做参考,不要太较真, 看看就好了。

MySQL 工具:

1. 自带mysqlimport工具。

2. 命令行 load data infile ...

3. 利用mysql-connector-python Driver来写的脚本。

PostgreSQL 工具:

1. pgloader 第三方工具。

2. 命令行 copy ... from ...

3. 利用psycopg2写的python 脚本。

测试表结构:

mysql> desc t1;

+----------+-----------+------+-----+-------------------+-------+

| Field | Type | Null | Key | Default | Extra |

+----------+-----------+------+-----+-------------------+-------+

| id | int(11) | NO | PRI | NULL | |

| rank | int(11) | NO | | NULL | |

| log_time | timestamp | YES | | CURRENT_TIMESTAMP | |

+----------+-----------+------+-----+-------------------+-------+

3 rows in set (0.00 sec)

mysql> select count(*) from t1;

+----------+

| count(*) |

+----------+

| 1000000 |

+----------+

1 row in set (6.80 sec)

测试CSV文件:

t1.csv

MySQL 自身的loader: (时间24妙)

mysql> load data infile '/tmp/t1.csv' into table t1 fields terminated by ',' enclosed by '"' lines terminated by '\r\n';

Query OK, 1000000 rows affected (24.21 sec)

Records: 1000000 Deleted: 0 Skipped: 0 Warnings: 0

MySQL python 脚本:(时间23秒)

>>>

Running 23.289 Seconds

MySQL 自带mysqlimport:(时间23秒)

[root@mysql56-master ~]# time mysqlimport t_girl '/tmp/t1.csv' --fields-terminated-by=',' --fields-enclosed-by='"' --lines-terminated-by='\r\n' --use-threads=2 -uroot -proot

t_girl.t1: Records: 1000000 Deleted: 0 Skipped: 0 Warnings: 0

real 0m23.664s

user 0m0.016s

sys 0m0.037s

PostgreSQL 自身COPY:(时间7秒)

t_girl=# copy t1 from '/tmp/t1.csv' with delimiter ',';

COPY 1000000

Time: 7700.332 ms

Psycopg2 驱动copy_to方法:(时间6秒)

[root@postgresql-instance scripts]# python load_data.py

Running 5.969 Seconds.

Pgloader 导入CSV:(时间33秒)

[root@postgresql-instance ytt]# pgloader commands.load

table name read imported errors time

ytt.t1 1000000 1000000 0 33.514s

------------------------------ --------- --------- --------- --------------

------------------------------ --------- --------- --------- --------------

Total import time 1000000 1000000 0 33.514s

Pgloader 直接从MySQL 拉数据:(时间51秒)

[root@postgresql-instance ytt]# pgloader commands.mysql

table name read imported errors time

fetch meta data 2 2 0 0.138s

------------------------------ --------- --------- --------- --------------

t1 1000000 1000000 0 51.136s

------------------------------ --------- --------- --------- --------------

------------------------------ --------- --------- --------- --------------

------------------------------ --------- --------- --------- --------------

Total import time 1000000 1000000 0 51.274s

附上commands.load和commands.mysql

commands.load:

LOAD CSV

FROM '/tmp/ytt.csv' WITH ENCODING UTF-8

(

id, rank, log_time

)

INTO postgresql://t_girl:t_girl@127.0.0.1:5432/t_girl?ytt.t1

WITH skip header = 0,

fields optionally enclosed by '"',

fields escaped by backslash-quote,

fields terminated by ','

SET work_mem to '32 MB', maintenance_work_mem to '64 MB';

commands.mysql:

LOAD DATABASE

FROM mysql://python_user:python_user@192.168.1.131:3306/t_girl?t1

INTO postgresql://t_girl:t_girl@127.0.0.1:5432/t_girl?ytt.t1

with data only

SET maintenance_work_mem to '64MB',

work_mem to '3MB',

search_path to 'ytt';

附pgloader 手册:

http://pgloader.io/howto/pgloader.1.html

mysql uroot pg t_【原创】MySQL和PostgreSQL 导入数据对比相关推荐

  1. postgresql导入mysql_【原创】MySQL和PostgreSQL 导入数据对比

    在虚拟机上测评了下MySQL 和 PostgreSQL 的各种LOAD FILE方式以及时间. 因为是虚拟机上的测评,所以时间只做参考,不要太较真, 看看就好了. MySQL 工具: 1. 自带mys ...

  2. mysql uroot e_批量 kill mysql 连接

    事故重现,并且加入一些后期想到的想法作为演义. 今天 mysql 服务器负载过高, 主库上主要是写的操作,首先看有没有锁表的,发现没有.mysql -uroot -e "show proce ...

  3. mysql uroot p 报错,MySQL链接错误集。

    一. 链接MySQL数据库报错: ERROR 1049 (42000):unknown database ';' C:\Program Files\mysql-5.6.22-winx64\bin> ...

  4. MySQL 到PostgreSQL 的数据迁移工具

    2019独角兽企业重金招聘Python工程师标准>>> pg_chameleon is available on pypi for download python 包下载地址 The ...

  5. mysql 主从 不一致_揭秘MySQL主从数据不一致

    前言: 目前MySQL数据库最常用的是主从架构,大多数高可用架构也是通过主从架构演变而来.但是主从架构运行时间长久后容易出现数据不一致的情况,比如因从库可写造成的误操作或者复制bug等,本篇文章将会详 ...

  6. mysql导入csv数据慢_mysql导入数据过慢 解决办法

    mysql导入数据过慢 解决方法 mysql中用 mysql->use test; mysql->set names utf8; mysql->source D:/ceshi.sql ...

  7. db2 linux 导入数据_「软件资料」-「软件使用」-Linux 导入、导出 MySQL 数据库命令...

    一.导出数据库 1.导出完整数据:表结构+数据 Linux 下可以使用 mysqldump 命令来导出数据库,语法格式如下:mysqldump -u用户名 -p 数据库名 > 数据库名.sql ...

  8. mysql mydumper_采用mydumper对MySQL部分数据库进行热备

    现有2台DB服务器,分别用于A业务与B业务,其中A业务比较重要,需要对A业务的1个DB(TaeOss)进行热备,大概有40G的数据,并用业务B的DB服务器作为备机,服务器分布如下: 10.137.14 ...

  9. 找回mysql root密码_找回MySQL的root密码

    实验介绍:MySQL的root密码丢失,无法登陆.需要重置其root密码 环境介绍:编译安装的MySQL 这篇博客介绍的找回 mysql root 密码是 mysql 基于编译安装的,如果是多实例下的 ...

  10. Linux最小体积mysql安装_Linux下安装MySQL以及一些小坑

    第一次写博客,各位凑合着看吧(假装有人看). 我这里使用的是centos7. 1.首先打开终端,查看有没有安装过MySQL: [root@localhost lyp]# rpm -qa | grep ...

最新文章

  1. 如何给按钮加上链接功能
  2. 【爬蟲】爬蟲概述、分類及運行原理
  3. wpf BackgroundWorker 的简单用法
  4. MySQL count函数的具体介绍
  5. 怎么测试服务器端口是否对外开放_从零开始内建你的安全测试流程
  6. POJ 2315:Football Game(博弈论)
  7. java 异常堆栈日志分析_Java 进阶之路:深入解读 Java 异常堆栈丢失原因
  8. mysql群集配置_mysql8 参考手册-NDB群集配置参数,选项和变量概述
  9. 求解下列递推关系式_装错信封问题及九连环问题的递推关系式以及通项公式的推导(尤其是高中生一定要读)...
  10. 自考计算机应用技术实践考核,自考计算机应用基础课程实践考核内容
  11. 潮流电商平台毒App正式改名了!
  12. bzoj 1086: [SCOI2005]王室联邦(DFS)
  13. java版mc植物生长条件_植物生长三大必要条件
  14. Linux 磁盘管理 一(Raid、LVM、Quota)
  15. Springboot封装的好的发送post请求的工具类
  16. 读书笔记:《圈子圈套》
  17. vue 不是内部或外部命令
  18. SQL中Group by 简单理解
  19. 亚马逊云科技为全球的可持续发展进程做出贡献
  20. 华为鸿蒙手机充电期间系统将进行深度优化

热门文章

  1. Java 并发编程:轻量级锁和偏向锁详解
  2. 一文带你了解隐私 Layer1
  3. 主题:程序的扩展性(第二节:如何扩展), 时间:2004-12-10 03:00 PM
  4. 人工智能、大数据、云计算概念
  5. 公众号迁移开通留言功能
  6. 2021年8月NOC全国中小学信息技术创新与实践大赛 软件创意编程小学高年级组Python决赛题解析
  7. WPS 页码设置为(前1...前3,后4...后6)
  8. Android AVD 存放路径修改
  9. oracle select into from 用法,数据库插入数据之select into from与insert into select区别详解...
  10. R语言基础画图/绘图/作图