삽입을 위해 MySQL 속도 향상(테스트 목적)

삽입을 위해 MySQL 속도 향상(테스트 목적)

많은 INSERT를 수행해야 하는 약간의 소프트웨어가 있습니다. 프로덕션 환경에서는 몇 가지 심각한 조정과 테스트 등이 있을 것이지만 이제 테스트해야 할 때 삽입 속도를 최대한 높이고 싶습니다. 따라서 내 질문은 - 디스크 I/O를 많이 수행하지 않지만 모든 것을 RAM에 유지하고 디스크와 거의 동기화하지 않도록 mysql을 조정할 수 있는 방법이 있습니까(한 번 n초라고 말합니까?)

답변1

Insert Delayed는 대량으로 삽입할 수 있으므로(MyISAM의 장점) 도움이 될 수 있습니다(MyISAM에만 해당).
테이블을 분할하는 것도 도움이 될 것입니다.

당신의 메모리가 그것을 허용한다면(그리고 당신이 요구하는 것이 그것이라면), 메모리 테이블을 사용할 수 있습니다. max_heap_table_size 및 tmp_table_size 설정이 데이터에 충분한지 확인하세요.

좀 더 트릭은 (Linux에서) TMPFS를 사용하고 거기에 데이터 파일을 배치하는 것입니다(Symlinks 사용).

답변2

MySQL 매뉴얼의 답변을 참조하십시오여기. 특정 질문에 답하려면 INSERT DELAYED정확히 원하는 것을 수행하는 것이 무엇인지 확인하십시오. delayed_insert_limit및 를 사용하여 동작을 조정할 수 있습니다 delayed_queue_size.

하지만 INSERT를 일괄 처리할 수 있다면 훨씬 더 빨라질 수 있습니다. 대량 삽입 도구를 사용하거나 여러 VALUES 목록을 제공하세요. 예:INSERT INTO table (column) VALUES (val1),(val2),(val3)

답변3

다니엘이 대답의 두 번째 부분에서 말했듯이 일괄 삽입은 많은 것을 제공할 것입니다. 확인하다이것프레젠테이션. 귀하의 규모는 아마도 훨씬 작을 것입니다. 그러나 어쨌든 귀하는 그것이 흥미로울 것이라고 생각합니다.

관련 정보