2013-02-11 4 views

답변

3

InnoDB의 압축 된 행 형식은 몇 가지 전제 조건이 있습니다 당신의 my.cnf 파일에

  1. innodb_file_format=Barracuda합니다.

  2. innodb_file_per_table my.cnf 파일에 있습니다. 중앙 테이블 공간 (ibdata1)에 저장된 테이블에서는 압축이 작동하지 않습니다.

  3. 압축 형식을 사용하도록 표를 변경하십시오.

    ALTER TABLE MyTable ROW_FORMAT=COMPRESSED 
    

그런 다음 표는 압축 된 포맷으로 저장되어야하고, 더 적은 공간을 차지한다.
압축 비율은 데이터에 따라 다릅니다.

참고 :을 ibdata1 중앙 테이블 스페이스에 저장된 테이블을 가지고, 당신은 파일 당 테이블에 테이블을 재구성하는 경우, 을 ibdata1 축소하지 않습니다! ibdata1을 줄이는 유일한 방법은 모두 InnoDB 데이터를 덤프하고, MySQL을 종료하고, 테이블 공간을 rm하고, MySQL을 다시 시작하고, 데이터를 다시로드하는 것입니다. 귀하의 의견을 다시


:

아니, 당신이 쿼리를 수행 방식을 변경하지 마십시오.

네, 시간이 오래 걸립니다. 시스템에 따라 시간은 다릅니다. 나는 작은 테이블을 먼저 시도해 볼 것을 권한다.

작성시 압축 할 때 CPU 리소스를 낭비해야하며 읽을 때 압축을 풀어야합니다. 데이터베이스 서버가 추가 CPU 리소스를 갖는 것은 일반적입니다. 데이터베이스는 일반적으로 I/O로 제한됩니다. 그러나 속도가 병목 현상이 될 수 있습니다. 다시 말하지만, 그것은 시스템, 데이터 및 사용에 따라 다릅니다. 나는 그것이 당신이 그물 승리 여부를 조심스럽게 테스트하는 것이 좋습니다.

+0

이렇게하면 어쨌든 테이블에서 데이터를 선택하는 방식이 변경됩니까? 데이터베이스가 1 테라 바이트 크기라면 alter table 명령문이 오래 걸릴까요? – user121196

+0

Karwim : 쿼리가 느려 집니까? 나는 파리에서 압축을 풀 것이라고 추측합니까? – user121196

+0

내 대답을 내 대답으로 옮겼습니다. –