질문하신 내용을 정확히 하기 위해서는 각각의 버퍼들이 어떤 경우에 사용되는가를 잘 아셔야 할 것 같습니다. 대략적으로 적어 보면 다음과 같습니다.
key_buffer : 인덱스 이용시 사용하는 메모리 풀의 크기. 만약 자신의 query 들이 index 를 많이 이용한다면 당연히 이 수치를 증가 시켜 줘야 합니다. 하지만 인덱스를 많이 사용하지 않는다면 당연히 이 메모리는 그냥 갖다 버리는 메모리가 될 것입니다. (기본값은 8M)
table_cache : 디비에 많은 테이블이 존재한다던지 또는 동시 접속자가 많은 경우 증가시켜 줘야 합니다. (기본값은 64)
sort_buffer : GROUP BY, ORDER BY 구문에서 이용되는 buffer의 크기입니다. 이 또한 자신이 사용하는 query 의 종류에 따라서 변경해야 겠지요. 만약 order by/group by 구문을 많이 이용한다면 증가시켜 주시기 바랍니다.
record_buffer : 테이블을 스캔할 때 사용하는 buffer 입니다. 즉 sort/index 등을 사용하지 않는 종류의 쿼리인 경우 주로 이용하게 되겠지요.
이상의 내용을 보면 아시겠지만 위의 값들은 주로 자신이 처한 환경에 따라 달라지겠지요. 혹시 조절해 보시고 자신의 상황과 mysql의 performance 를 최대로 하는 방법에 대해 좋은 의견 있으시면 올려 주시기 바랍니다.
::김일회 님께서 쓰시길::
> 안녕하세요?
> 반갑습니다.
> 저는 P3 600 듀얼 CPU 를 사용하고
> 메모리는 512M 를 사용 하고 있습니다.
> 하드는 RAID 하드 18G 가 두개가 있습니다.
> mysql 최적화해서 사용 할려고 하는 데 아래의 옵션들을 어떻게 바꾸어야 할까요?
> 여기서 최적화라는 의미는 최대한 많은 동시 사용자가 들어 올수 있겠끔 하는것도
> 포함됩니다. 여기에 있는 옵션 외에도 다른 옵션들이 있다면 갈켜주세요.
> (safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O record_buffer=1M -O wait_
> timeout=600 )
>
> 감사합니다.
|