mysql uroot pg t_【原创】MySQL和PostgreSQL 导入数据对比
在虚拟机上测评了下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 导入数据对比相关推荐
- postgresql导入mysql_【原创】MySQL和PostgreSQL 导入数据对比
在虚拟机上测评了下MySQL 和 PostgreSQL 的各种LOAD FILE方式以及时间. 因为是虚拟机上的测评,所以时间只做参考,不要太较真, 看看就好了. MySQL 工具: 1. 自带mys ...
- mysql uroot e_批量 kill mysql 连接
事故重现,并且加入一些后期想到的想法作为演义. 今天 mysql 服务器负载过高, 主库上主要是写的操作,首先看有没有锁表的,发现没有.mysql -uroot -e "show proce ...
- mysql uroot p 报错,MySQL链接错误集。
一. 链接MySQL数据库报错: ERROR 1049 (42000):unknown database ';' C:\Program Files\mysql-5.6.22-winx64\bin> ...
- MySQL 到PostgreSQL 的数据迁移工具
2019独角兽企业重金招聘Python工程师标准>>> pg_chameleon is available on pypi for download python 包下载地址 The ...
- mysql 主从 不一致_揭秘MySQL主从数据不一致
前言: 目前MySQL数据库最常用的是主从架构,大多数高可用架构也是通过主从架构演变而来.但是主从架构运行时间长久后容易出现数据不一致的情况,比如因从库可写造成的误操作或者复制bug等,本篇文章将会详 ...
- mysql导入csv数据慢_mysql导入数据过慢 解决办法
mysql导入数据过慢 解决方法 mysql中用 mysql->use test; mysql->set names utf8; mysql->source D:/ceshi.sql ...
- db2 linux 导入数据_「软件资料」-「软件使用」-Linux 导入、导出 MySQL 数据库命令...
一.导出数据库 1.导出完整数据:表结构+数据 Linux 下可以使用 mysqldump 命令来导出数据库,语法格式如下:mysqldump -u用户名 -p 数据库名 > 数据库名.sql ...
- mysql mydumper_采用mydumper对MySQL部分数据库进行热备
现有2台DB服务器,分别用于A业务与B业务,其中A业务比较重要,需要对A业务的1个DB(TaeOss)进行热备,大概有40G的数据,并用业务B的DB服务器作为备机,服务器分布如下: 10.137.14 ...
- 找回mysql root密码_找回MySQL的root密码
实验介绍:MySQL的root密码丢失,无法登陆.需要重置其root密码 环境介绍:编译安装的MySQL 这篇博客介绍的找回 mysql root 密码是 mysql 基于编译安装的,如果是多实例下的 ...
- Linux最小体积mysql安装_Linux下安装MySQL以及一些小坑
第一次写博客,各位凑合着看吧(假装有人看). 我这里使用的是centos7. 1.首先打开终端,查看有没有安装过MySQL: [root@localhost lyp]# rpm -qa | grep ...
最新文章
- 如何给按钮加上链接功能
- 【爬蟲】爬蟲概述、分類及運行原理
- wpf BackgroundWorker 的简单用法
- MySQL count函数的具体介绍
- 怎么测试服务器端口是否对外开放_从零开始内建你的安全测试流程
- POJ 2315:Football Game(博弈论)
- java 异常堆栈日志分析_Java 进阶之路:深入解读 Java 异常堆栈丢失原因
- mysql群集配置_mysql8 参考手册-NDB群集配置参数,选项和变量概述
- 求解下列递推关系式_装错信封问题及九连环问题的递推关系式以及通项公式的推导(尤其是高中生一定要读)...
- 自考计算机应用技术实践考核,自考计算机应用基础课程实践考核内容
- 潮流电商平台毒App正式改名了!
- bzoj 1086: [SCOI2005]王室联邦(DFS)
- java版mc植物生长条件_植物生长三大必要条件
- Linux 磁盘管理 一(Raid、LVM、Quota)
- Springboot封装的好的发送post请求的工具类
- 读书笔记:《圈子圈套》
- vue 不是内部或外部命令
- SQL中Group by 简单理解
- 亚马逊云科技为全球的可持续发展进程做出贡献
- 华为鸿蒙手机充电期间系统将进行深度优化
热门文章
- Java 并发编程:轻量级锁和偏向锁详解
- 一文带你了解隐私 Layer1
- 主题:程序的扩展性(第二节:如何扩展), 时间:2004-12-10 03:00 PM
- 人工智能、大数据、云计算概念
- 公众号迁移开通留言功能
- 2021年8月NOC全国中小学信息技术创新与实践大赛 软件创意编程小学高年级组Python决赛题解析
- WPS 页码设置为(前1...前3,后4...后6)
- Android AVD 存放路径修改
- oracle select into from 用法,数据库插入数据之select into from与insert into select区别详解...
- R语言基础画图/绘图/作图