#2. MySQL로 손풀기

지난 번에 만들었던 H4Pay와는 다르게 DB를 mongoDB가 아니라 MySQL을 쓰기로 했다. 인트라넷이라는 특성 상 많은 정보가 오랫동안 저장되어야 하고, 데이터의 양도 많기 때문에 RDBMS를 사용하는 편이 더 관리하기 쉬울 것으로 예상했다.

오늘은 손풀기 겸 MySQL을 미리 사용해보려고 사이트에 추가할 기능 중 하나인 '오늘의 명언'에 사용할 명언 DB를 만들었다. 구글링으로 명언과 영단어 약 15000개 이상이 담긴 SQL 파일을 찾았는데, 필요 없는 내용들을 지우면 일일히 번호 매기기가 힘들어서 CSV로 변환하고 엑셀로 작업하려 했다. 하지만 엑셀의 골치아픈 CP949 인코딩으로 인해 글자가 다 깨져서 나왔다. CSV 서식 문제도 있었기에 번호를 다시 매기는 데만 약 1시간 이상을 썼다.

무엇보다 더 오래 걸렸던 건, 필요 없는 내용을 다 지우고도 8000개 가량이 되는 Row들의 쿼리를 날리는 일이었다.
너무 많아서 다 추가하는 데 약 10~20분이 걸렸다. 서식이 잘못된 것들을 지운 것까지 하면 약 2시간은 쓴 듯 하다.

결과물은 나왔으니 아무래도 좋다.

지금 생각해보면, serial에 자동 증가를 적용했으면 따로 CSV 작업을 하지 않고 바로 word만 삽입해도 번호는 자동으로 매겨주는 것 아닌가?
고생만 했다.

오늘 쓴 SQL 구문

CREATE TABLE today_proverb ( 
  serial INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  word TEXT NOT NULL,
  UNIQUE KEY serial (serial)
) // today_proverb라는 이름의 테이블 생성, serial은 Unsigned INT형에 word 삽입 시 자동 증가, word는 TEXT형, 유니크 키는 serial로 지정
SELECT * FROM today_proverb; // 모든 Row 조회
INSERT INTO today_proverb (serial, word) VALUES (번호, 명언); // 테이블에 Row 삽입

좋은 웹페이지 즐겨찾기