我希望在 Magento 安装中添加大量(大约 200 个)产品属性。它们中的大多数将是二进制的。
我看到每个属性都会在平面产品表中添加一列。由于添加了这些属性,我是否应该期望看到性能下降?属性数量的最佳做法是什么?
编辑:我们正在使用 Magento 1.6.1
我希望在 Magento 安装中添加大量(大约 200 个)产品属性。它们中的大多数将是二进制的。
我看到每个属性都会在平面产品表中添加一列。由于添加了这些属性,我是否应该期望看到性能下降?属性数量的最佳做法是什么?
编辑:我们正在使用 Magento 1.6.1
我认为您唯一应该注意的是最大 Mysql 行大小。请参阅这篇文章以获得解释。这是其中的一段摘录,以了解我在说什么:
每个表(无论存储引擎如何)的最大行大小为 65,535 字节。存储引擎可能会对此限制施加额外的限制,从而减少有效的最大行大小。
最大行大小限制了列的数量(可能还有大小),因为所有列的总长度不能超过这个大小。例如,utf8 字符每个字符最多需要三个字节,因此对于 CHAR(255) CHARACTER SET utf8 列,服务器必须为每个值分配 255 × 3 = 765 个字节。因此,一个表不能包含超过 65,535 / 765 = 85 个这样的列。
因此,如果 200 属性的总大小超过此值(65,535 字节),您将无法将所有属性存储在平面表中。在这种情况下,您应该缩短您拥有的属性数量,或者干脆不要将所有属性都放在 Flat table 中。您只需要产品列表页面上应该可用的属性。我不认为你会在那里展示所有200个......