2012-10-15 138 views
1

我期待爲Magento安裝添加大量(約200個)產品屬性。他們中的大多數將是二元的。Magento - 產品屬性 - 建議最大?

我看到每個屬性都將一列添加到扁平產品表中。我應該期望看到由於添加這些屬性而導致性能下降嗎?多個屬性的最佳做法是什麼?


編輯:我們正在使用的Magento 1.6.1

回答

2

我想你應該知道的唯一的事情就是最大的Mysql行大小。文章的解釋請參見this。下面是它一個摘錄,應該明白我在說什麼:

每個表(無論存儲引擎)爲65,535字節的最大行大小。存儲引擎可能會對此限制添加其他約束,從而減少有效的最大行大小。

由於所有列的總長度不能超過此大小,因此最大行大小限制了列的數量(以及可能的大小)。例如,utf8字符每個字符最多需要三個字節,因此對於CHAR(255)CHARACTER SET utf8列,服務器必須爲每個值分配255×3 = 765個字節。因此,一個表不能包含超過65,535/765 = 85個這樣的列。

因此,如果您的200屬性的總大小超過此值(65,535字節),您將無法將所有屬性存儲在Flat表中。在這種情況下,你應該縮短你擁有的屬性的數量,或者簡單地不要把你所有的屬性放在Flat table。您只需要在產品列表頁面上提供的屬性。我不會說你要在那裏展示所有200 ...

+0

好東西。問題是,即使在MYSQL限制內,Magento的性能也會降低,例如,平臺中有250列? – Laizer

+0

當然,從大表中選擇執行時間將大於從小表中執行的時間。我不能告訴你它會有多慢,但我認爲你不會注意到它的差異,因爲在Magento頁面加載流程中,這只是其中很多其他人的一個小問題。你能感覺到性能下降的唯一方法是如果表格變得如此之大,它不再適合內存。磁盤操作將發生,而這些操作要慢得多。 –