Magento有很多表格可以管理价格
在我看来:
- 在产品/类别页面中,产品价格是从catalog_product_flat表中加载的。
- 在搜索页面中,使用_idx表(我认为是价格范围过滤器)。
数据表
| 桌子 注意事项 | --------------------------------------------- | --- --------------------- | | catalog_product_index_price | 有数据-主表| | catalog_product_index_price_idx | 有数据| | catalog_product_index_price_tmp | 有数据|
没有数据的表
| 桌子 注意事项 | --------------------------------------------- | --- --------------------- | | catalog_product_index_price_bundle_idx | 没有数据 | catalog_product_index_price_bundle_opt_idx | 没有数据 | catalog_product_index_price_bundle_opt_tmp | 没有数据 | catalog_product_index_price_bundle_sel_idx | 没有数据 | catalog_product_index_price_bundle_sel_tmp | 没有数据 | catalog_product_index_price_bundle_tmp | 没有数据 | catalog_product_index_price_cfg_opt_agr_idx | 没有数据 | catalog_product_index_price_cfg_opt_agr_tmp | 没有数据 | catalog_product_index_price_cfg_opt_idx | 没有数据 | catalog_product_index_price_cfg_opt_tmp | 没有数据 | catalog_product_index_price_downlod_idx | 没有数据 | catalog_product_index_price_downlod_tmp | 没有数据 | catalog_product_index_price_final_idx | 没有数据 | catalog_product_index_price_final_tmp | 没有数据 | catalog_product_index_price_opt_agr_idx | 没有数据 | catalog_product_index_price_opt_agr_tmp | 没有数据 | catalog_product_index_price_opt_idx | 没有数据 | catalog_product_index_price_opt_tmp | 没有数据
因此,看起来只有3个表具有数据:
- catalog_product_index_price
- catalog_product_index_price_idx
- catalog_product_index_price_tmp
唯一实际使用的表是catalog_product_index_price,层导航使用它来按价格过滤产品。(请参阅Mage_Catalog_Model_Resource_Layer_Filter_Price-> _ getPriceExpression())
表格:catalog_product_index_price
| 实体编号| customer_group_id | website_id | tax_class_id | 价格| final_price | min_price | max_price | tier_price | 价格
它托管了网站/客户组的所有组合。我的排列数学仍然不是很好,但前提是您有:
- 100.000产品
- 2个网站(将价格属性范围设置为“网站”)
- 10个客户群
=> 100.000 * 2 * 10 = 2.000.000行
如果您不对不同的客户群使用不同的价格,那么您最终将在DB上占用大量空间,并且价格重新编制索引将非常缓慢。(因为基本上每个产品的所有20行将包含相同的值)
问题:
- 删除以上所有空表是否安全?
- 为什么有3个带有数据的表catalog_product_index_price,但实际上只使用1个?
优化:
- 如果所有组合的产品价格都相同,则有可能减少索引表中的行数。
1
至于所有表,我无法回答,但是只有某些目录(例如,您在网站内部捆绑,可配置和可下载的产品)中的某些目录(例如catalog_product_index_price_bundle_x,catalog_product_index_price_cfg_x和catalog_product_index_price_downlod_x)才具有数据。其他货币可能被用来存储带有二级货币等的最终价格,但是对此我并不乐观。
—
艾瑞克(Eirik)