2012-10-15 3 views
1

Magento 설치에 상당한 수 (약 200) 개의 제품 속성을 추가하려고합니다. 대부분은 바이너리입니다.Magento - 제품 속성 - 권장 최대 값은?

각 속성이 플랫 제품 테이블에 열을 추가하는 것을 볼 수 있습니다. 이러한 속성이 추가되어 성능이 저하 될 것으로 예상됩니까? 속성 수에 가장 적합한 방법은 무엇입니까?


편집 : 우리는

답변

2

젠토 1.6.1를 사용하고 난 당신이 알아야 할 유일한 것은 최대의 MySQL 행 크기라고 생각합니다. 자세한 내용은 this 문서를 참조하십시오. 여기에서 내가 말하는 내용을 이해할 수 있습니다.

모든 테이블 (스토리지 엔진과 관계 없음)의 최대 행 크기는 65,535 바이트입니다. 스토리지 엔진은이 제한에 대한 추가 제한 조건을 적용하여 유효 최대 행 크기를 줄입니다.

모든 행의 총 길이가이 크기를 초과 할 수 없기 때문에 최대 행 크기는 열의 수 (및 가능한 크기)를 제한합니다. 예를 들어, utf8 문자는 문자 당 최대 3 바이트가 필요하므로 CHAR (255) CHARACTER SET utf8 열의 경우 서버는 값 당 255 x 3 = 765 바이트를 할당해야합니다. 결과적으로, 테이블은 65,535/765 = 85 이상의 컬럼을 포함 할 수 없습니다.

200 속성의 전체 크기가이 값 (65,535 바이트)을 초과하는 경우 모든 속성을 플랫 테이블에 저장할 수 없습니다. 이 경우 애트리뷰트의 양을 줄이거 나 모든 속성을 플랫 테이블에 배치하지 마십시오. 제품 목록 페이지에서 사용할 수 있어야하는 속성 만 필요합니다. 나는 거기에 모두 200을 보여줄 것이라는 점을 ...

+0

좋은 물건. 문제는 MYSQL 한계 내에서도 Magento 성능이 저하 될 것입니다 (예 : 플랫 테이블에 250 열? – Laizer

+0

물론 더 큰 테이블에서'select' 실행 시간은 더 작은 테이블보다 커집니다. 얼마나 느린지 말할 수는 없지만 Magento 페이지로드 흐름 중에는 다른 요청 중에서 작은 요청이 하나뿐이기 때문에 차이점을 알 수 없을 것입니다. 성능 저하를 느낄 수있는 유일한 방법은 테이블이 너무 커져서 메모리에 더 이상 적합하지 않을 때입니다. 디스크 작업이 수행되고 훨씬 더 느립니다. –