Magento 1.9: Bảng giá sản phẩm - chúng hoạt động như thế nào?


9

Magento có nhiều bảng để quản lý giá

Dường như với tôi rằng:

  • trong các trang sản phẩm / danh mục, giá sản phẩm được tải từ các bảng catalog_product_flat .
  • trong các trang tìm kiếm, bảng _idx được sử dụng (tôi nghĩ cho bộ lọc phạm vi giá).

Bảng với dữ liệu

| Bảng | Ghi chú |
| --------------------------------------------- | --- --------------------- |
| catalog_product_index_price | có dữ liệu - bảng chính |
| catalog_product_index_price_idx | có dữ liệu |
| catalog_product_index_price_tmp | có dữ liệu |

Bảng không có dữ liệu

| Bảng | Ghi chú |
| --------------------------------------------- | --- --------------------- |
| catalog_product_index_price_bundle_idx | không có dữ liệu |
| catalog_product_index_price_bundle_opt_idx | không có dữ liệu |
| catalog_product_index_price_bundle_opt_tmp | không có dữ liệu |
| catalog_product_index_price_bundle_sel_idx | không có dữ liệu |
| catalog_product_index_price_bundle_sel_tmp | không có dữ liệu |
| catalog_product_index_price_bundle_tmp | không có dữ liệu |
| catalog_product_index_price_cfg_opt_agr_idx | không có dữ liệu |
| catalog_product_index_price_cfg_opt_agr_tmp | không có dữ liệu |
| catalog_product_index_price_cfg_opt_idx | không có dữ liệu |
| catalog_product_index_price_cfg_opt_tmp | không có dữ liệu |
| catalog_product_index_price_downlod_idx | không có dữ liệu |
| catalog_product_index_price_downlod_tmp | không có dữ liệu |
| catalog_product_index_price_final_idx | không có dữ liệu |
| catalog_product_index_price_final_tmp | không có dữ liệu |
| catalog_product_index_price_opt_agr_idx | không có dữ liệu |
| catalog_product_index_price_opt_agr_tmp | không có dữ liệu |
| catalog_product_index_price_opt_idx | không có dữ liệu |
| catalog_product_index_price_opt_tmp | không có dữ liệu |

Vì vậy, có vẻ như chỉ có 3 bảng có dữ liệu:

  • catalog_product_index_price
  • catalog_product_index_price_idx
  • catalog_product_index_price_tmp

Bảng được sử dụng thực tế duy nhất là catalog_product_index_price , điều hướng lớp sử dụng nó để lọc các sản phẩm theo giá. (xem Mage_Catalog_Model_Resource_Layer_Filter_Price -> _ getpriceExpression () )

Bảng: catalog_product_index_price

| thực thể | khách hàng_group_id | website_id | tax_group_id | giá | Final_price | tối thiểu | tối đa | tier_price | nhóm_price |

Nó lưu trữ tất cả các kết hợp của các trang web / nhóm khách hàng Toán học hoán vị của tôi dù sao cũng không tốt lắm, giả sử bạn có:

  • 100.000 sản phẩm
  • 2 trang web (phạm vi thuộc tính giá được đặt thành Trang web)
  • 10 nhóm khách hàng

=> 100.000 * 2 * 10 = 2.000.000 hàng

Nếu bạn không sử dụng các mức giá khác nhau cho các nhóm khách hàng khác nhau, thì cuối cùng bạn sẽ có rất nhiều không gian trên DB và reindex giá sẽ rất chậm. (Vì về cơ bản, tất cả 20 hàng cho mỗi sản phẩm sẽ chứa cùng một giá trị)

Câu hỏi:

  1. Có an toàn để xóa tất cả các bảng trống ở trên?
  2. Tại sao có 3 bảng catalog_product_index_price có dữ liệu nhưng chỉ có 1 bảng thực sự được sử dụng?

Tối ưu hóa:

  1. Có thể giảm số lượng hàng trong bảng chỉ mục trong trường hợp giá sản phẩm hoàn toàn giống nhau cho tất cả các kết hợp?

1
Đối với tất cả các bảng tôi không thể trả lời, nhưng một số bảng như catalog_product_index_price_bundle_x, catalog_product_index_price_cfg_x và catalog_product_index_price_downlod_x sẽ chỉ có dữ liệu nếu bạn có gói, có thể tải xuống cấu hình. Những cái khác có thể được sử dụng để lưu trữ giá cuối cùng với các loại tiền tệ thứ cấp, v.v. nhưng trên đó tôi không tích cực.
Eirik

Câu trả lời:


2

Có an toàn * để xóa tất cả các bảng trống ở trên?

Những bảng trống đó sẽ được điền khi Magento giới thiệu lại và danh mục có các sản phẩm cho loại sản phẩm được chỉ định.
Sẽ an toàn khi xóa bảng _idx Magento sẽ tạo lại chúng trong reindex.

Tại sao có 3 bảng có dữ liệu nhưng chỉ có 1 bảng thực sự được sử dụng?

Bảng idx và bảng tmp chỉ được sử dụng để lập chỉ mục:

  • _tmp trống và nó sẽ được điền trong reindex
  • _idx là bảng chỉ số thực tế

xin lỗi câu trả lời của bạn chỉ là không nói gì với tôi
Fra

Bạn có thể vui lòng cụ thể hơn về những gì không rõ ràng?
Quisse

Tôi biết các bảng đó là chỉ mục, tôi biết bạn có thể cắt chỉ mục (bạn đang nói bạn không thể nhưng điều đó không đúng, bạn chỉ cần reindex sau) bạn sẽ không nói gì mới .... nếu bạn không có một câu trả lời cho câu hỏi bạn nên đăng bình luận không phải là câu trả lời
Fra

Xin lỗi vì đã cố gắng giúp đỡ, bạn thậm chí đã đọc câu trả lời của tôi chưa? Bạn thực sự cần đặt câu trả lời của tôi bên cạnh câu hỏi của bạn.
Quisse

Bây giờ tôi đã làm điều đó cho bạn. Tôi hy vọng chúng ta có thể có một hộp thoại mang tính xây dựng để giải quyết câu hỏi.
Quisse
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.