Tại sao và khi nào nên sử dụng Catalog Flat Catalog


24

Trong khi thực hiện nghiên cứu bit cho vấn đề tốc độ của trang web magento, tôi đã nhận được một số liên kết nơi mọi người nói kích hoạt "Danh mục phẳng" để tăng hiệu suất và tốc độ.

Vấn đề là tại sao nó không được bật theo mặc định là tốc độ là vấn đề.

Sẽ cho phép "Danh mục phẳng" cũng có một số tác dụng phụ?

Trang web magento của tôi có 100 sản phẩm và 500 sản phẩm đi kèm và tốc độ khá là vấn đề vì tôi đang tải 36 sản phẩm cùng một lúc.

Sẽ cho phép "Danh mục phẳng" giải quyết vấn đề của tôi?

Câu trả lời:


35

Sự khác biệt giữa danh mục EAV và danh mục phẳng như sau:

1. Danh mục Eav

EAV là mô hình cơ sở dữ liệu giá trị thuộc tính thực thể, trong đó dữ liệu hoàn toàn ở dạng chuẩn hóa. Mỗi giá trị dữ liệu cột được lưu trữ trong bảng kiểu dữ liệu tương ứng của chúng. Ví dụ, đối với một sản phẩm,

ID sản phẩm được lưu trữ trong catalog_product_entity_intbảng,

tên sản phẩm trong catalog_product_entity_varcharbảng,

giá sản phẩm trong catalog_product_entity_decimalbảng,

sản phẩm tạo ngày trong catalog_product_entity_datetimebảng,

mô tả sản phẩm trong catalog_product_entity_textbảng.

EAV rất phức tạp khi nó tham gia 5-6 bảng ngay cả khi bạn chỉ muốn nhận một chi tiết của sản phẩm.

Các cột được gọi là các thuộc tính trong EAV.

2. Danh mục phẳng

Mô hình phẳng chỉ sử dụng một bảng, vì vậy nó không được chuẩn hóa và sử dụng nhiều không gian cơ sở dữ liệu hơn. Nó xóa chi phí EAV,

Thật tốt khi nói đến hiệu suất, vì nó sẽ chỉ yêu cầu một truy vấn để tải toàn bộ sản phẩm thay vì tham gia 5-6 bảng để chỉ nhận một chi tiết của sản phẩm.

Các cột được gọi là các trường trong mô hình phẳng.

Magento đã thực hiện các bộ chỉ mục sẽ định kỳ truy vấn các bộ sưu tập tiêu chuẩn và điền vào các bảng cơ sở dữ liệu phẳng theo định dạng sau. Trong đó * là id cửa hàng.

catalog_category_flat_store_*
catalog_product_flat_*

Các bảng này có dữ liệu danh mục và sản phẩm không được chuẩn hóa chỉ dành cho mục đích đọc. Điều này cho phép Magento tìm nạp dữ liệu danh mục và sản phẩm trong một truy vấn duy nhất.


Bạn có thể kích hoạt danh mục phẳng bằng cách điều hướng đến System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product. Đặt cái này thành có.

Nếu bạn đang thêm thuộc tính mới trong bảng EAV cho danh mục. Sau đó đừng quên chạy lại chỉ mục (System > Configuration > Index Management). Lập chỉ mục lại làm mới bảng danh mục phẳng của bạn.

Để biết thêm thông tin, vui lòng kiểm tra Danh mục EAV của EAV & & Flat Flat trong Magento


ok 1: tôi có thể chuyển đổi giữa căn hộ sang eav và eav để căn hộ bất cứ lúc nào? 2: cột động có thể được thêm khi sử dụng phẳng không?
triển md

Có, bạn có thể chuyển đổi giữa chúng. Bạn cũng có thể thêm các cột động. Nhưng hãy đảm bảo bạn chạy lập chỉ mục lại sau khi thêm thuộc tính mới vào EAV
Rohit Kundale

@RohitKundale: Kích hoạt Danh mục phẳng cho sản phẩm thiếu nhiều thuộc tính và kết quả là tôi không nhận được nhiều tính năng được hiển thị cho sản phẩm. Tôi cũng lập lại chỉ mục. Tại sao tất cả các thuộc tính không được lập chỉ mục cho các cột động trong khi cho phép danh mục phẳng?
Anurag Khandelwal

2
@AnuragKhandelwal Kiểm tra tại đây
Rohit Kundale

Đây có lẽ là điều đầu tiên họ chỉ cho tôi khi tôi bắt đầu sử dụng magento.
Domino

5

Magento sử dụng mô hình Entity-Attribution-Value (EAV) để lưu trữ dữ liệu khách hàng, sản phẩm và danh mục trong cơ sở dữ liệu của nó. Mặc dù mô hình EAV cho phép bạn có các thuộc tính hoàn toàn có thể mở rộng cho các đối tượng đó, các thuộc tính đối tượng được lưu trữ trong nhiều bảng thay vì một bảng rất lớn.

Bởi vì các thuộc tính được lưu trữ trong nhiều bảng, và bao gồm các bản sao của một số thuộc tính giống nhau, các truy vấn SQL có thể dài và phức tạp. Tính năng danh mục phẳng tạo các bảng mới một cách nhanh chóng, trong đó mỗi hàng chứa tất cả dữ liệu cần thiết về một sản phẩm hoặc danh mục.

Trong các phiên bản trước của Magento, cần phải xây dựng lại danh mục phẳng mỗi khi bạn thay đổi thuộc tính sản phẩm hoặc liên kết danh mục sản phẩm. Trong bản phát hành này, danh mục phẳng được cập nhật cho bạn mỗi phút hoặc theo công việc định kỳ Magento của bạn.

Tùy chọn danh mục phẳng không chỉ cho phép danh mục phẳng và bộ chỉ mục sản phẩm phẳng mà còn cho phép lập chỉ mục cho quy tắc giá của danh mục và giỏ hàng. Nếu bạn có số lượng SKU lớn (500.000 trở lên), Magento có thể nhanh chóng lập chỉ mục quy tắc giá giỏ hàng và giỏ hàng nếu bạn bật tùy chọn sản phẩm danh mục phẳng.


Trong bản phát hành này, danh mục phẳng được cập nhật cho bạn mỗi phút hoặc theo công việc định kỳ Magento của bạn. phiên bản nào bạn đang đề cập
triển md

Xin lỗi tôi không nhận được điểm của bạn
Arunendra

trong tùy chọn của bạn, bạn đã giới thiệu phiên bản hiện tại là 1.9. hoặc magento 2
triển md

1
Nó phụ thuộc vào bạn phiên bản nào phù hợp với bạn. Magento 2 có nhiều lợi thế hơn.
Arunendra

1
@Arunendra mdeveloper đang hỏi bạn đang đề cập đến phiên bản Magento nào khi bạn nói: "Trong phiên bản này, danh mục phẳng được cập nhật cho bạn". Bạn đang nói về phiên bản nào? Magento 1.9 có cập nhật nó cho chúng tôi không? Có phải chỉ có trong Magento 2? Phiên bản Magento nào đã bắt đầu được cập nhật cho chúng tôi?
Olivier

1

Các danh mục phẳng không được nâng cấp tự động ngay cả trong Magento 1.9.2. Tôi đã không kiểm tra 1.9.3, vì tôi luôn xây dựng lại các chỉ mục theo cách thủ công sau khi cập nhật hàng loạt (ví dụ: mức chứng khoán).

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.