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 -> _ getPrice Expression ( )
ตาราง: catalog_product_index_price
| นิติบุคคล | customer_group_id | website_id | tax_class_id | ราคา | final_price | min_price | max_price | Tier_price | group_price |
มันโฮสต์ชุดค่าผสมทั้งหมดของเว็บไซต์ / กลุ่มลูกค้าคณิตศาสตร์การเปลี่ยนแปลงของฉันไม่ดีมากสมมติว่าคุณมี:
- ผลิตภัณฑ์ 100.000
- 2 เว็บไซต์ (ขอบเขตราคาที่กำหนดเป็นเว็บไซต์)
- 10 กลุ่มลูกค้า
=> 100.000 * 2 * 10 = 2.000.000 แถว
หากคุณไม่ได้ใช้ราคาที่แตกต่างกันสำหรับกลุ่มลูกค้าที่แตกต่างกันคุณจะได้รับพื้นที่มากมายบนฐานข้อมูลและการสร้างดัชนีราคาจะช้ามาก (เพราะโดยทั่วไปแล้ว 20 แถวสำหรับแต่ละผลิตภัณฑ์จะมีค่าเหมือนกัน)
คำถาม:
- จะปลอดภัยไหมที่จะลบตารางที่ว่างเปล่าข้างต้นทั้งหมด?
- ทำไมมีแคตตาล็อกตารางที่3_product_index_priceพร้อมข้อมูล แต่มีเพียง 1 รายการเท่านั้นที่ใช้จริง
การเพิ่มประสิทธิภาพ:
- เป็นไปได้ไหมที่จะลดจำนวนแถวในตารางดัชนีในกรณีที่ราคาสินค้าเหมือนกันสำหรับชุดค่าผสมทั้งหมด