---
# System prepended metadata

title: 240424 대용량 데이터 넣기

---

# 240424 대용량 데이터 넣기

## sql 테이블 생성
```SQL
CREATE TABLE User (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_rank TINYINT NOT NULL,
    money INT NOT NULL,
    name VARCHAR(50) NOT NULL,
    start_date DATE NOT NULL,
    last_login DATETIME
);
```

## 데이터 삽입
- CSV 파일로 300백만개의 데이터를 저장
- CSV 파일을 읽어 User 테이블에 데이터 삽입
```SQL
LOAD DATA INFILE '/path/to/your/file.csv'
INTO TABLE users
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
(rank, money, nickname, start_date, last_login);
```

## 데이터 조회
- 백만개의 데이터 조회 시 1.4s
- `SELECT * FROM User WHERE id < 1000000;`


## 에러발생
- 데이터를 150만개씩 2번 넣으면 AutoIncrement로 설정된 id가 3,000,000 임을 기대했는데, 3,007,000 즈음의 값이 나왔습니다.
- csv 파일 두개를 합쳐서 300만개의 데이터를 넣으면 최대 id가 3,000,000 입니다. 그리고 150만개의 데이터가 담긴 csv 파일을 읽었더니 max(id)가 451만이 넘는 값이 나왔습니다. 

해커가 왔다감 ㅋㅋ

