MySQL 대용량 Insert

-- MySQL 2013. 10. 15. 15:46
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MySQL에서 Insert를 수행할 때, 대용량의 레코드를 Insert하려면 수행속도가 많이 느리다.
대용량의 Insert를 위해서는 아래의 여러 방법으로 수행속도를 향상시킬 수 있다.


Index가 걸린 대용량 테이블이라면, Index를 해제하고 Insert를 하면 더 효과적이다.

- ALTER TABLE table DISABLE KEYS;
- INSERT INTO table (field1, field2) VALUES (....);
- ALTER TABLE table ENABLE KEYS;


해당 테이블을 Lock해도 된다면 Lock을 걸고 Insert하는 것이 더 효과적이다.

- ALTER TABLE table DISABLE KEYS;
-
LOCK TABLES table WRITE;
- INSERT INTO table (field1, field2) VALUES (....);
- UNLOCK TABLES table WRITE;
- ALTER TABLE table ENABLE KEYS;



1. Insert 다중리스트

INSERT INTO table (field1, field2) VALUES ('value_11', 'value_12'),('value_21','value_22'), ... , ('value_n1','value_n2');


2. LOAD DATA INFILE

LOAD DATA INFILE '/data/data1.csv'
INTO TABLE table
FIELDS TERMINATED BY '\t'
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
(field1, field2)

'-- MySQL' 카테고리의 다른 글

모든 Stored Procedure, Function의 내용 검색  (0) 2015.02.09
MySQL FullText 검색  (0) 2013.10.17
반올림, 버림  (0) 2013.08.20
MySQL Transaction Isolation Level  (0) 2013.08.08
Slow query logging  (0) 2013.07.17
posted by 어린왕자악꿍