2008년 12월 16일 화요일

MySQL CSV INSERT 時, DB設計方法

아래는 PHPSCHOOL 에서 본 글이며, 전진하는아르고님의 글입니다.
DB설계시 꼭 참조하시길... 본문바로보기

php 로 csv insert 하는걸 보니 아무래도 mysql 일 가능성이 가장많아 mysql 이라 가정하겠습니다.

현재 입력을 insert 문으로 하나요?
그렇다고 한다면 우선 2가지 경우로 나눌수 있습니다.
첫째 DB Type 에 관한것입니다.
myisam 인경우 insert 속도가 빠른데 반해 최근 많이 사용하는 innodb의 경우 insert 속도가
무지 느립니다. 테이블 Type 을 한번 확인해보세요.
테이블 type 이 innodb 라면 myisam 으로 바꾼후 데이터 insert 후 innodb 로 바꾸시는것도
한가지 방법입니다.

두번째 테이블에 조건이나 unique 인덱스같은게 걸려있는건 아닌지 모르겠네요.
데이터 입력시에는 테이블만들고 pk 나 그외 unique 등이 있으면 해당 키값들의 규칙에 어긋나는
값들이 있는지 확인후 insert 하기에 느립니다.
그래서 pk , index 등의 모든 조건등을 다 빼버리고 순수 테이블만 만드신 상태에서
입력후 index 나 pk 를 지정하는 방법이 있습니다.

그리고 추가적으로 많은 양의 데이터를 입력시에는 쉘상태로 mysql 접속하셔서
load data 문을 사용하시는게 가장 좋습니다. 그럼 입력속도가 insert 문보다 훨씬 빨라집니다.
그럼 시간절약을 하실수 있길 바랍니다. ^^

댓글 없음:

댓글 쓰기