JBMEX 님이 쓰신 글 :
: for loop 로 인서트 일일이 실행하면 비용이 많이 들지 않는가요?
:
: INSERT INTO `테이블` (필드1, 필드2) VALUES ('값1', '값2'),('값1', '값2')...('값1', '값2');
: 주변에 보니 이런식으로 쿼리 만들어서 한방에 날리라고 말을 하는군요.
:
: mysql 설정 ini 파일에 bulk_insert_buffer_size가 적절하게 설정되어 있는지 확인해야 할것 같은데
: 기본값은 8388608 (8M) 이라고 하네요. 성능을 위해서 뭔가 조정할 필요가 있어보입니다.
:
: 그외에 만약 autocommit 같은 설정값이 존재한다면 false 로 설정하고 마지막에 commit 을 한방에 때려야
: 속도에 도움이 좀 될 것 같은데요. 해보지 않아서 어떻게 하는지는 모르겠습니다.
:
: http://dev.mysql.com/doc/refman/5.1/en/insert-speed.html
:
:
:
: 땅주인 님이 쓰신 글 :
: : DB : MySQL 5.0
: : DB Component: DBExpress
: :
: : 한꺼번에 넣어야 할 Row가 1000~2000건 정도가 되는데요..
: : 통신으로 받은 Raw 데이터(1초당 발생하는 데이터)를 몇 분 정도의 데이터를 한꺼번에 넣어야 하는 상황입니다.
: :
: : For 루프 돌면서 insert 문장으로 넣으니 시간이 많이 걸리네요.
: :
: : Row 데이터를 한꺼번에 넣을 수 있는 방법이 있는 지요?
: :
: : ADO에서
: :
: : Query->InsertRow();
: : ... // 해당 Row에 데이터 넣기
: : Query->Post();
: :
: : 이런 형태로 했던 것 같은데..
: :
: : DBExpress에서도 이런 형식을 지원하는 지 알고 싶습니다.
: : Help에 뒤져봐도 잘 안보여서...
: :
: : 감사합니다.
|