2010-02-19 6 views
9

PostgreSQL과 동일한 질문이 있습니다. here; 누구든지 (a) 응답의 MySQL 풍미와 (b) 대답을 결정/영향을 미칠 수있는 MySQL 옵션을 알고 있는지 궁금합니다.MySQL에서 최대 트랜잭션 크기를 어떻게 결정합니까?

절대적인 대답은 필요하지 않지만, 만약 내가 2Kb ~ 20Kb의 20 만 줄을 삽입 할 것을 제안한다면 매우 간단하거나 한계를 조금 넘기겠습니까?

MySQL은 4Gb의 RAM, 디스크 공간의 shedloads 및 일반적으로 자신이하는 일을 알고있는 사람이 조정 한 잘 정돈 된 Linux 상자에서 실행된다고 가정합니다!

건배

브라이언

+1

(응답하지 않습니다 내 질문이지만 재미있는 배경) – Brian

답변

13

Innodb의 경우 트랜잭션 크기는 리두 로그 (ib_logfile *)의 크기에 따라 제한되므로 매우 큰 트랜잭션을 커밋하려면 innodb_log_file_size = 256M 이상을 설정해야합니다. 단점은 충돌시 복구하는 데 더 오래 걸리는 것입니다. http://www.pythian.com/news/1337/에서 기사에 "MySQL은 트랜잭션 로깅의 개요"를 찾을 수

그러나 기록을 위해 Innobase 직원이 당신을 유지하는 것이 좋습니다 거래 short

+0

완벽 해 보이는데, 고마워. – Brian

1

SQL 서버 내부에 내장되어있는 트랜잭션 (transaction) 제한이 없습니다. 제한은 실행중인 하드웨어, 실제 RAM, 하드 디스크의 여유 공간입니다.

수백만 데이터를 성공적으로 가져 왔습니다.

+1

안녕하세요, 빠른 답변에 감사드립니다. 확실합니까? 내가 처음에 묻는 이유는 DBA가 상황을 바로 잡을 때까지 대규모 작업 (수십만 문장)이 트랜잭션 로그를 채우고 추가 DB 쓰기를 방지하기 전에 "enterprisey"Sybase 플랫폼에서 작업 한 적이 있다는 것입니다. 나의 본능은 MySQL 트랜잭션 로그 파일/메모리 설정이 어딘가에 있지만 실제로는 매우 크게 설정할 수 있지만 그럼에도 불구하고 크기가 유한하다는 것입니다. – Brian

+1

이 답변이 잘못되었다고 생각합니다. 적어도 ORACLE의 경우에는 트랜잭션 크기에 제한이 있으며 InnoDB와 마찬가지로 한계가 있습니다. – hgoebl

관련 문제