哪些表与magento中重新索引 索引的过程相关联。 请分享任何可用的文件。
答案 0 :(得分:0)
不能归功于此,因为它取自原始帖子:Can someone explain Magentos Indexing feature in detail?
Magento的索引仅与精神上的数据库级索引类似。正如Anton所说,这是一个非规范化的过程,可以让网站更快地运行。让我试着解释Magento数据库结构背后的一些想法,以及为什么它需要索引才能以高速运行。
更多"典型" MySQL数据库,一个用于存储目录产品的表格,其结构如下:
PRODUCT:
product_id INT
sku VARCHAR
name VARCHAR
size VARCHAR
longdesc VARCHAR
shortdesc VARCHAR
... etc ...
这对于检索而言很快,但它为一个电子商务软件留下了根本问题:当您想要添加更多属性时,您会怎么做?如果您销售玩具而不是尺寸列,您需要age_range吗?好吧,你可以添加另一个列,但应该很清楚,在一个大型商店(例如,想想沃尔玛),这将导致90%为空的行,并且几乎不可能尝试维护新属性。
为了解决这个问题,Magento将表格分成更小的单位。我不想在这个答案中重新创建整个EAV系统,所以请接受这个简化的模型:
PRODUCT:
product_id INT
sku VARCHAR
PRODUCT_ATTRIBUTE_VALUES
product_id INT
attribute_id INT
value MISC
PRODUCT_ATTRIBUTES
attribute_id
name
现在可以通过在product_attributes中输入新值然后将相邻记录放入product_attribute_values来随意添加属性。这基本上就是Magento所做的事情(对数据类型的尊重比我在这里显示的要多一点)。事实上,现在没有理由让两个产品具有相同的字段,因此我们可以创建具有不同属性集的整个产品类型!
然而,这种灵活性需要付出代价。如果我想在我的系统中找到衬衫的颜色(一个简单的例子),我需要找到:
Magento曾经像这样工作,但它已经慢了。因此,为了获得更好的性能,他们做出了妥协:一旦店主定义了他们想要的属性,就从头开始生成大表。当某些东西发生变化时,从空间中进行核对并再次生成它。这样,数据主要以我们灵活的格式存储,但是从单个表中查询。
这些结果查找表是Magento"索引"。重新编制索引时,您正在炸毁旧表并再次生成它。