Magento fiyatları yönetmek için birçok masaya sahiptir
Bana öyle geliyor ki:
- ürün / kategori sayfalarında ürün fiyatları catalog_product_flat tablolarından yüklenir .
- arama sayfalarında _idx tablosu kullanılır (Bence fiyat aralığı filtresi).
Verileri içeren tablo
| Tablo | Notlar | | --------------------------------------------- | --- --------------------- | | catalog_product_index_price | verilere sahip - ana tablo | | catalog_product_index_price_idx | verisi var | | catalog_product_index_price_tmp | verisi var |
Veri içermeyen tablo
| Tablo | Notlar | | --------------------------------------------- | --- --------------------- | | catalog_product_index_price_bundle_idx | veri yok | | catalog_product_index_price_bundle_opt_idx | veri yok | | catalog_product_index_price_bundle_opt_tmp | veri yok | | catalog_product_index_price_bundle_sel_idx | veri yok | | catalog_product_index_price_bundle_sel_tmp | veri yok | | catalog_product_index_price_bundle_tmp | veri yok | | catalog_product_index_price_cfg_opt_agr_idx | veri yok | | catalog_product_index_price_cfg_opt_agr_tmp | veri yok | | catalog_product_index_price_cfg_opt_idx | veri yok | | catalog_product_index_price_cfg_opt_tmp | veri yok | | catalog_product_index_price_downlod_idx | veri yok | | catalog_product_index_price_downlod_tmp | veri yok | | catalog_product_index_price_final_idx | veri yok | | catalog_product_index_price_final_tmp | veri yok | | catalog_product_index_price_opt_agr_idx | veri yok | | catalog_product_index_price_opt_agr_tmp | veri yok | | catalog_product_index_price_opt_idx | veri yok | | catalog_product_index_price_opt_tmp | veri yok |
Yani veri içeren sadece 3 tablo var gibi görünüyor:
- catalog_product_index_price
- catalog_product_index_price_idx
- catalog_product_index_price_tmp
Kullanılan tek gerçek tablo catalog_product_index_price'dir , katman navigasyonu ürünleri fiyata göre filtrelemek için kullanır. (bkz. Mage_Catalog_Model_Resource_Layer_Filter_Price -> _ getPriceExpression () )
Tablolar: catalog_product_index_price
| varlık_kimliği | müşteri_grubu_kimliği | website_id | tax_class_id | fiyat | final_price | min_price | max_price | tier_price | grup_fiyat |
Web sitelerinin / müşteri grubunun tüm kombinasyonlarına ev sahipliği yapıyor Benim permütasyon matematik zaten varsayalım:
- 100.000 ürün
- 2 web sitesi (Web sitesine ayarlanmış bir fiyat özelliği kapsamı)
- 10 müşteri grubu
=> 100.000 * 2 * 10 = 2.000.000 satır
Farklı müşteri grupları için farklı fiyatlar kullanmazsanız, DB'de çok fazla alandan feragat edersiniz ve fiyat reindex çok yavaş olur. (Çünkü temel olarak her ürün için 20 satırın tümü aynı değerleri içerecektir)
Sorular:
- Yukarıdaki tüm boş tabloları silmek güvenli midir?
- Neden verilerle 3 tablo catalog_product_index_price var ama sadece 1 kullanılıyor?
Optimizasyon:
- Ürün fiyatları tüm kombinasyonlar için aynı olduğunda, endeks tablosundaki satır miktarını azaltmak mümkün olabilir mi?