2010-12-07 4 views
4

세 개의 큰 MySQL 테이블이 있습니다. 그들은 2 백만 레코드에 접근하고 있습니다. 두 테이블은 InnoDB이며 현재 크기는 약 500MB입니다. 다른 테이블은 MyISAM이며 약 2.5GB입니다.MySQL INSERT/UPDATE의 속도를 높이려면 어떻게해야합니까?

FileMaker에서 가져 오기 스크립트를 실행하여이 테이블에 레코드를 삽입하고 업데이트하지만 최근에는 시간이 몇 백 레코드 만 삽입되는 등 매우 느립니다.

성능 향상을 위해 삽입 및 업데이트를 빠르게 수행하려면 어떻게해야합니까?

+1

'FileMaker에서 삽입 및 업데이트 할 스크립트 가져 오기'에 대한 추가 정보가 필요합니다. 이 스크립트는 FileMaker 스크립트입니까 (느림)? 저장되지 않은 FileMaker 계산이 포함되어 있습니까 (느리게)? FileMaker는 MySQL과 어떻게 대화합니까? – Ted

+0

[MySQL INSERT 및 UPDATE 성능을 향상시키는 방법?] (http://stackoverflow.com/questions/2367229/how-to-improve-mysql-insert-and-update-performance) – hakre

답변

0

사물의 FileMaker 측면에서 느린 이유가 나타났습니다. FileMaker 레코드를 CSV로 내보내고 INSERT/UPDATE 명령을 실행하면 매우 빠르게 실행됩니다.

2

INSERT의 경우 테이블에 정의한 색인과 관련 될 수 있습니다 (각 INSERT 후에 업데이트해야 함). 그들에 대해 더 많은 정보를 게시 할 수 있습니까? 테이블에 트리거가 설정되어 있습니까?

업데이트의 경우 업데이트가 느리지 만 레코드 찾기가 느려지지 않을 수 있습니다. UPDATE를 SELECT로 변경하고 여전히 느린지 확인할 수 있습니까? 그렇다면 색인을 조사해야합니다.

2

Innodb 테이블의 경우 허용되는 위험이있는 경우 innodb_flush_log_at_trx_commit 레벨을 변경하는 것이 좋습니다. this blog post의 몇 가지 세부 정보와 Innodb 튜닝 포인터가 더 있습니다.

두 엔진 모두 일괄 처리 INSERT을 함께 사용하면 일을 빠르게 처리 할 수 ​​있습니다. doc을 참조하십시오.

실행중인 MySQL 버전은 무엇입니까? 새로운 InnoDB "Plugin"엔진과 여러 프로세서가있는 서버에서의 작업 동시성으로 많은 개선이있었습니다.

+0

+1 일괄 처리, 아직 그렇게하지 않으면 많은 도움이됩니다. – thomaspaulb

2

MySQL에서 명령 줄에서 실행될 때 쿼리 속도가 느립니까?

FileMaker의 Execute SQL 스크립트 단계를 사용하는 경우 모든 호출 후에 연결과 연결이 끊어 지므로 많은 쿼리를 실행할 때 속도가 크게 떨어집니다. 이 문제를 피하기 위해 고객이 JDBC plugin (자체 홍보 면책 조항)으로 전환하도록하여 결과적으로 속도가 빨라졌습니다.