mysql> desc user_log;
+------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| nickname | varchar(64) | YES | | NULL | |
| money | decimal(10,2) | YES | | NULL | |
| last_visit | datetime | YES | | NULL | |
+------------+---------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
Dimport java.util.Random;
public class Test {
private static Random r = new Random();
public static void main(String[] args) {
Test test = new Test();
test.genData(100, 16);
}
private void genData(int count, int clen) {
for (int i = 0; i < count; i++) {
System.out.printf("%d,%s\n", i, genStr(clen));
}
}
private Object genStr(int clen) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < clen; i++) {
sb.append((char) ('a' + r.nextInt(24)));
}
return sb.toString();
}
}
$ java Main 1000000 > bigdata.csv
mysql> LODA DATA LOCAL INFILE 'big.csv' (로컬 데이터 big.scv를 로드)
-> INTO TABLE table_name (테스트 테이블에 넣는다)
-> FIELDS TERMINATED BY ',' (필드가 ','로 끝난다)
-> ; (끝)
Qurey OK, 1000000 rows affected (1.12 sec)
Records: 1000000 Deleted: 0 Skipped: 0 Warnings: 0
select * from table_name
참고: 보통 외주해서 대용랑 파일을 받아오는데 첫번째 데이터에 테이블 정보가 들어가있어서 망하는 경우가 있다. 그거 무시하려면 끝에 IGNORE 1 LINES 라고 입력해주면 됨
안녕하세요 22년도 백엔드 코스 짱민이라고 합니닼ㅋㅋㅋㅋ
대용량 데이터 삽입을 찾다가 좋은 글을 발견했는데 마침 선배님 글이라서 반가운 마음에 댓글 남깁니다.....ㅎㅎㅎㅎㅎㅎㅎㅎ