將csv檔案匯入MySQL中

2022-10-08 20:27:14 字數 2225 閱讀 6566

建立資料表

匯入csv格式檔案,首先保證表存在

create table `nizong_1e_data`  (

`user_id` varchar(255) character set utf8mb4 collate utf8mb4_general_ci null default null,

`age` varchar(255) character set utf8mb4 collate utf8mb4_general_ci null default null,

index `phone`(`user_id`) using btree

) engine = innodb character set = utf8mb4 collate = utf8mb4_general_ci row_format = dynamic;

上傳資料檔案

檢視資料庫安全匯入目錄,將資料檔案上傳至安全目錄

mysql> show variables like '%secure_file_priv%';       

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

| variable_name | value |

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

| secure_file_priv | /tmp/ |

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

1 row in set (0.00 sec)

檢視資料庫字符集

mysql> show variables like 'character_set_database';

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

| variable_name | value |

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

| character_set_database | utf8mb4 |

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

1 row in set (0.00 sec)

將csv檔案傳入安全目錄下然後再進行匯入操作

匯入資料

load data infile '/tmp/5kw_pir.csv'

into table nizong_5kw_data character set utf8mb4

fields terminated by ',' optionally enclosed by '"' escaped by '"'

lines terminated by '\r\n';

問題列表

1、現象:執行命令後,檢視資料表僅有一行資料

定位:檢查第一行資料是否與真實資料完全匹配,第一行最後列欄位是否錄入了第二行資料

方法:行分隔符使用錯誤,比如hive匯出的csv的行分隔符為\n

如果建表的時候加入索引,匯入資料過大就會導致插入時間過長

加索引

第乙個千萬 耗時兩個半小時

第二個千萬 耗時八個小時四十分鐘

第三個千萬 耗時十六個小時+

無索引

五千萬 耗時七分鐘

一億 三個半小時

千萬級以上的資料匯入時建議不要加索引

建立無索引的表

create table `400w_nizong_data`  (

`user_id` varchar(255) ,

`age` varchar(255)

) engine = innodb character set = utf8mb4 collate = utf8mb4_general_ci row_format = dynamic;

匯入資料後新增索引

alter table nizong_1e_data add index idx_user_id(user_id);

如何將csv檔案匯入MySQL

root debian mysqlimport uroot p123456 fields terminated by fields enclosed by fields escaped by database name var lib mysql files table name.csv引數說明 f...

將csv檔案匯入到mysql

首先,為自己要匯入的檔案按照屬性建立好錶 mysql create table id int notnull primary key,name char 30 character set utf8 not null level char 30 character set utf8 not null,...

Mysql 匯入csv檔案

mysql load data infile命令可以把csv平面檔案中的資料匯入到資料庫中。linux下 load data infile home test dump ip location.csv into table ip location character set utf8 fields ...