2012-04-04 4 views
0

오늘 시험을 보았습니다. innodb 테이블에서 10K 레코드를 가진 소스 파일로 비어있는 삽입 성능의 변형을 확인하십시오. 이 통계는 무엇을 말해 줍니까?

내가 사용 "MySQL의 -uuname -pxxxxxx -Ddbanme < insert_file.sql"

여기 나온 다른 통계입니다.

BINARY LOGGING IS ENABLED 
    innodb_flush_log_trx_commit = 1  Time: 25 minutes 
    innodb_flush_log_trx_commit = 2  Time: 4 seconds 

    BINARY LOGGING IS DISABLED 
    innodb_flush_log_trx_commit = 1  Time: 6 minutes 
    innodb_flush_log_trx_commit = 2  Time: 3 seconds 

잘 모르겠습니다. 이 시험 세부 사항에 대한 귀하의 의견을 공유하십시오.

+0

게시물을 더 잘 보이게 해주신 Fenwick에게 감사드립니다. – Uday

+0

또한'innodb_flush_log_trx_commit = 2' 설정을위한 특별한 하드웨어가 필요하거나 충돌시 데이터가 손실 될 수 있습니다 – kommradHomer

+0

'trx_commit' 1과 2의 차이점을 알고 계십니까? –

답변

2

보기 hereinnodb_flush_log_trx_commit이 1 일 때 MySQL은 로그를 더 자주 플러시합니다. 설명서에서 볼 수 있듯이 ACID 준수를 달성하려면 1이어야합니다. 귀하의 경우, 파일에서 데이터를 가져올 때 값 1을 가지면 무엇인가가 깨지면 전체 트랜잭션이 실패합니다 (테이블은 비워 둡니다). 값 2, 무언가가 발생하면 테이블에 가져 오기 전에 성공한 레코드가 포함됩니다. 실패한).

BINARY LOGGING과 관련하여 바이너리 로깅이 없을 경우 삽입 속도가 빨라집니다. 슬레이브 서버가없고 마스터 서버의 명령을 복제하지 않으려면 바이너리 로깅이 필요하지 않으므로 성능을 향상시킬 수 있기 때문에이 옵션을 해제 할 수 있습니다.

+0

innodb_flush가 1로 설정되어 있고 바이너리 로깅을 사용하도록 설정하면 성능이 크게 저하 될 수 있다는 특별한 경우가 있는지 알고 싶습니다. 여기에있는 경우가 있습니다. 어쨌든 귀하의 의견을 보내 주셔서 감사합니다. – Uday

+0

테스트 결과 이미 성능 차이가 있음이 나타났습니다. 수행하는 쓰기 작업에는 차이가 있습니다. 이 두 설정은 SELECT에 대한 성능 영향을 가져서는 안됩니다. –

관련 문제