2008-11-04 6 views
1

MyISAM 및 innoDB가 사용하는 메모리 양을 아는 사람이 있습니까? 작은 테이블을 다룰 때와 큰 테이블을 다룰 때의 메모리 사용량은 어떻게 비교됩니까 (최대 32GB)?MySQL MyISAM 및 innoDB 메모리 사용량

innoDB는 MyISAM보다 무거웠지만, 얼마나 더 넉넉합니까?

도움을 주시면 감사하겠습니다.

감사합니다,

+1

무엇을 할 지 결정할 때 기본값을 올려야합니다. 그들은 당신의 하드웨어에 비해 너무 낮을 것입니다. MySQL의 기본값은 매우 보수적입니다. – staticsan

+0

"innoDB는 MyISAM보다 무겁다"는 것을 알고 있습니다. 더 무거운 단어입니다. –

답변

6

JB 당신은 그런 그들을 비교할 수 없습니다. 아니면 적어도 그렇게해서는 안됩니다. 각각은 다른 방식으로 메모리를 사용합니다. 성능 향상을 위해 DB를 조정하는 경우 특히 그렇습니다.

MyISAM은 인덱스를위한 특정 버퍼를 가지고 있으며 다른 데이터를 캐싱하기 위해 OS 디스크 버퍼를 사용합니다. 버퍼를 인덱스의 합보다 크게하는 것은 의미가 없지만, 더 많은 메모리를 주면 더 빠를 것입니다.

InnoDB에는 모든 데이터에 대한 버퍼 풀이 있습니다. 사용 가능한 메모리와 얼마만큼주고 싶으십니까? InnoDB는 최대한 많은 데이터를 메모리에 버퍼링한다. 전체 DB를 메모리에 넣을 수 있다면, InnoDB는 결코 디스크에서 읽지 않을 것이다. 많은 InnoDB 데이터베이스는 데이터 크기가 버퍼 풀보다 커지면 큰 성능 저하를 보게됩니다.

MySQL은 매우 구성 가능합니다. 귀하의 필요에 맞게 조정할 수 있습니다. 일반적으로 데이터베이스는 거의 항상 디스크 바운드이기 때문에 가능한 한 많은 메모리를 제공해야합니다. 메모리가 많을수록 더 많은 버퍼링이 가능합니다.

+0

이것은 흥미 롭습니다. 헌신적 인 InnoDB 박스를 설정하고 전체 데이터베이스를 메모리에 유지하기 위해 시스템 메모리의 80 %를 버퍼에 할당하는 것에 대해 읽었습니다. 이것이 MyISAM에서는 불가능한 것처럼 들립니다. 그 맞습니까? –

+0

MyISAM에서는 기본 키 캐시 이외의 추가적인 키 캐시를 생성 할 수 있습니다. 추가 키 캐시에 인덱스를로드하십시오. 그러나 게리 (Gary)가 언급했듯이, InnoDB는 데이터와 인덱스를 모두 버퍼링하기 때문에 충분한 메모리가 있으면 MyISAM과 비교할 때 훨씬 뛰어난 성능을 제공합니다. –

관련 문제