Magento memiliki banyak tabel untuk mengelola harga
Menurut saya itu:
- di halaman produk / kategori harga produk dimuat dari tabel catalog_product_flat .
- di halaman pencarian tabel _idx digunakan (saya pikir untuk filter kisaran harga).
Tabel dengan data
| Tabel | Catatan | | --------------------------------------------- | --- --------------------- | | catalog_product_index_price | memiliki data - tabel utama | | catalog_product_index_price_idx | memiliki data | | catalog_product_index_price_tmp | memiliki data |
Tabel tanpa data
| Tabel | Catatan | | --------------------------------------------- | --- --------------------- | | catalog_product_index_price_bundle_idx | tidak ada data | | catalog_product_index_price_bundle_opt_idx | tidak ada data | | catalog_product_index_price_bundle_opt_tmp | tidak ada data | | catalog_product_index_price_bundle_sel_idx | tidak ada data | | catalog_product_index_price_bundle_sel_tmp | tidak ada data | | catalog_product_index_price_bundle_tmp | tidak ada data | | catalog_product_index_price_cfg_opt_agr_idx | tidak ada data | | catalog_product_index_price_cfg_opt_agr_tmp | tidak ada data | | catalog_product_index_price_cfg_opt_idx | tidak ada data | | catalog_product_index_price_cfg_opt_tmp | tidak ada data | | catalog_product_index_price_downlod_idx | tidak ada data | | catalog_product_index_price_downlod_tmp | tidak ada data | | catalog_product_index_price_final_idx | tidak ada data | | catalog_product_index_price_final_tmp | tidak ada data | | catalog_product_index_price_opt_agr_idx | tidak ada data | | catalog_product_index_price_opt_agr_tmp | tidak ada data | | catalog_product_index_price_opt_idx | tidak ada data | | catalog_product_index_price_opt_tmp | tidak ada data |
Jadi sepertinya hanya ada 3 tabel yang memiliki data:
- catalog_product_index_price
- catalog_product_index_price_idx
- catalog_product_index_price_tmp
Satu-satunya tabel yang digunakan sebenarnya adalah catalog_product_index_price , lapisan navigasi menggunakannya untuk menyaring produk berdasarkan harga. (lihat Mage_Catalog_Model_Resource_Layer_Filter_Price -> _ getPriceExpression () )
Tabel: catalog_product_index_price
| entitas_id | customer_group_id | situs web_id | tax_class_id | harga | final_harga | min_harga | max_harga | tier_harga | group_price |
Ia meng-host semua kombinasi situs web / grup pelanggan Matematika permutasi saya tidak terlalu bagus, misalkan Anda memiliki:
- 100.000 produk
- 2 situs web (ruang lingkup atribut harga diatur ke Situs web)
- 10 kelompok pelanggan
=> 100.000 * 2 * 10 = 2.000.000 baris
Jika Anda tidak menggunakan harga yang berbeda untuk grup pelanggan yang berbeda, Anda akhirnya memiliki banyak ruang pada DB dan daftar harga akan sangat lambat. (Karena pada dasarnya semua 20 baris untuk setiap produk akan mengandung nilai yang sama)
Pertanyaan:
- Aman untuk menghapus semua tabel kosong di atas?
- Mengapa ada 3 tabel catalog_product_index_price dengan data tetapi hanya 1 yang benar-benar digunakan?
Optimasi:
- Apakah mungkin untuk mengurangi jumlah baris dalam tabel indeks jika harga produk semuanya sama untuk semua kombinasi?
Jawaban:
Tabel kosong itu akan diisi ketika Magento mengindeks ulang dan katalog memiliki produk untuk jenis produk tertentu.
Seharusnya aman untuk menghapus tabel _idx Magento akan membuat ulang mereka selama indeks ulang.
Tabel idx dan tabel tmp hanya digunakan untuk pengindeksan:
sumber