답변:
우선 동시 쓰기는 MyISAM 스토리지 옵션이 아닙니다. 그들 각각은 전체 테이블을 잠글 것입니다 (일부 경우 읽기 제외). InnoDB가 당신에게 잘 맞지 않으면 TokuDB를 사용해보십시오. 그러나 TokuDB 엔진 (및 물론 InnoDB) 엔진의 트랜잭션 특성으로 인해 MyISAM에 비해 속도가 느려질 것입니다 (저널 및 데이터 파일 같은 두 번 이상 동일한 데이터를 작성해야 함). 또한 서버가 언젠가 충돌하면 40Gb MyISAM 테이블이 복구 될 때까지 몇 시간 동안 대기하게됩니다.
그래도 MyISAM 테이블에 데이터를로드하고 빠르게하고 싶다면 사용을 권합니다. LOAD DATA INFILE
삽입 대신 하는 . 이는 대량의 데이터를 테이블에로드하는 가장 빠른 방법입니다. 그리고 인덱스는 인덱스 삽입 성능을 기하 급수적으로 느리게합니다.
파티션에 관한 한마디 : MySQL의 INSERT 문은 프 루닝을 지원하지 않으므로 고유 한 인덱스 일치를 위해 각 명령문에서 모든 파티션을 스캔합니다. 또한 삽입이 끝날 때까지 모든 파티션이 잠 깁니다.
이러한 삽입 쿼리는 동일한 프로세스에서 동시에 발생합니까? 동시에 사용하는 경우 MyISAM이 전체 테이블을 잠그고 InnoDB는 행 잠금을 사용하므로이 테이블에 InnoDB 스토리지를 사용하는 것이 좋습니다. 다른 스토리지로 전환하는 것이 옵션이 아닌 경우 INSERT DELAYED 문 및 기타 여러 삽입 최적화를 시도 할 수 있습니다 . 다른 물리 디스크에 다른 파티션을 배치하지 않으면 파티셔닝이 도움이되지 않습니다.