日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2024/8/5 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 postgresql导入mysql_【原创】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

?著作權歸作者所有:來自51CTO博客作者david_yeung的原創作品,如需轉載,請注明出處,否則將追究法律責任

MySQLPostgreSQLPython其他數據庫

總結

以上是生活随笔為你收集整理的postgresql导入mysql_【原创】MySQL和PostgreSQL 导入数据对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。