DB Bulk insert

roach·2021년 4월 18일
1

DB

목록 보기
1/2

DB Bulkinsert 하기

  • CSV 파일을 통해서 INSERT 를 시도해보자 10만 건 정도의 테스트 자료가 필요했다.

테이블 구조

+-----------------+--------------+------+-----+---------+-------+
| Field           | Type         | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+-------+
| ID              | varchar(36)  | NO   | PRI | NULL    |       |
| TITLE           | varchar(50)  | NO   |     | NULL    |       |
| CONTENT         | varchar(500) | NO   |     | NULL    |       |
| AUTHOR          | varchar(30)  | NO   |     | NULL    |       |
| COLUMNS         | bigint       | YES  |     | NULL    |       |
| COLUMNS_key     | int          | YES  |     | NULL    |       |
| CREATE_DATETIME | timestamp    | NO   |     | NULL    |       |
| UPDATE_DATETIME | timestamp    | NO   |     | NULL    |       |
+-----------------+--------------+------+-----+---------+-------+
  • 위의 테이블의 자료들을 다 넣어줘야 하므로 아래와 같은 파이썬 코드가 나온다.

파이썬 쿼리

import sys
import uuid

sys.stdout = open('query.csv', 'w')

for i in range(100000):
    insertQuery = str(uuid.uuid1()) + ', 6 ,' + "content ," + "web ," + "1 ," + str(i) + ", 2021-04-18 18:17:30 ," + "2021-04-18 18:17:30"
    print(insertQuery)

sys.stdout.close()

Login Option

mysql --local-infile=1 -uroot -padmin

명령어

LOAD DATA LOCAL INFILE 'query.csv' 
INTO TABLE CARD FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

DB 확인

profile
모든 기술에는 고민을

0개의 댓글