Khi nào tôi nên sử dụng tùy chọn bàn phẳng?


16

Để theo dõi một câu hỏi trước đây tôi muốn biết:

Khi nào tôi nên sử dụng tùy chọn bàn phẳng?

Trong khi googling tôi đã tìm thấy một lời khuyên để kích hoạt nó " khi bạn có rất nhiều danh mục ". Nhưng bao nhiêunhiều ?

Tôi có thể dễ dàng hiểu rằng việc kích hoạt các bảng phẳng cho các sản phẩm là một quyết định tốt về mặt hiệu suất, nhưng nó có thực sự quan trọng như các danh mục không?

Và ý nghĩa gì kết luận từ điều này? Tôi mới học được rằng việc cho phép các bảng danh mục phẳng dẫn đến việc không thể lưu các vị trí sản phẩm danh mục. Ít nhất là không dễ dàng như không có tùy chọn phẳng (thx để Marius giúp đỡ bạn). Có những điều đáng nói khác?

Cảm ơn trước :)

Câu trả lời:


10

Nếu bạn đã cài đặt PHPMyAdmin trên máy chủ của mình, bạn có thể xem các bảng của Magento. Bạn sẽ thấy rằng có rất nhiều bắt đầu với catalog_product_...catalog_category_....

Tất cả những thứ này được sử dụng cho từng sản phẩm và danh mục, điều đó có nghĩa là rất nhiều truy vấn phức tạp và nặng nề cho mỗi trang bạn gọi.

Để giảm tải cho MySQL và tăng tốc cửa hàng của bạn, Magento cung cấp các bàn phẳng. Ví dụ catalog_product_flat_1. Nếu bạn nhìn vào cấu trúc của bảng này, bạn sẽ thấy nó có rất nhiều dữ liệu sản phẩm cơ bản, có nghĩa là, ví dụ trong danh sách sản phẩm danh mục, chỉ có một truy vấn phải được thực hiện cho bảng này thay vì truy vấn nhiều bảng khác chứa dữ liệu thuộc tính.

Tuy nhiên, dữ liệu này được tổng hợp từ dữ liệu trong các bảng khác, điều đó có nghĩa là mỗi khi bạn lưu một sản phẩm, một số indexes( System > Configuration > Index Management) sẽ được làm mới để biên dịch dữ liệu sản phẩm này. Trong một số trường hợp như ví dụ trong khi phát triển điều này có thể không cần thiết. Bạn muốn xem tất cả các thay đổi ngay lập tức mặc dù thời gian tải trang có thể mất một lúc.

Vì vậy, để kết luận, bất cứ khi nào bạn mở một cửa hàng ra công chúng, hãy bật chúng lên và khi lập trình cố gắng không sử dụng các đối tượng sản phẩm hoặc danh mục đầy đủ mà thay vào đó sử dụng dữ liệu được cung cấp bởi các chỉ mục phẳng.


Tôi nghĩ rằng tôi sẽ luôn kích hoạt các bảng sản phẩm phẳng trong một môi trường sản xuất. Nhưng tôi không chắc lắm về các bảng danh mục phẳng. Vì vậy, bạn nói rằng bạn sẽ luôn luôn kích hoạt cả hai? Bất kể bạn có bao nhiêu danh mục?
Celldweller

Luôn kích hoạt chúng, càng nhiều danh mục thì lợi ích của khóa học càng lớn nhưng ngay cả khi bạn chỉ có 10 danh mục, nó vẫn sẽ lưu một vài truy vấn.
Sander Mangel

4
Bạn nên luôn luôn kích hoạt các thực thể danh mục phẳng, nhưng trên lý thuyết có một trường hợp khi nó không hoạt động. Điều này xảy ra khi bạn phải sử dụng nhiều thuộc tính được sử dụng trong danh sách sản phẩm và bạn vượt quá giới hạn hàng tối đa của mysql. Tôi đã thấy nó chỉ xảy ra một lần trước đây. Bạn không cần phải lo lắng nhiều, nhưng trong trường hợp nó xảy ra, bạn sẽ biết tại sao.
Marius

@Celldweller chúng tôi có thể cung cấp thêm thông tin về câu hỏi của bạn không?
Sander Mangel

0

Nếu bạn có nhiều danh mục hoặc nhiều thuộc tính được tạo tùy chỉnh cho các danh mục thì đó là một lựa chọn tốt vì độ phức tạp truy vấn giảm. Hãy nhớ rằng tải nặng có lợi nhiều hơn từ nó. Nhược điểm chính là các danh mục và danh mục căn hộ sử dụng một giao diện rất khác nhau, do đó, mã thường phải rất cẩn thận trong trường hợp các danh mục phẳng được kích hoạt.


Họ lại ở đó. Nhiều và nhiều. ;-) Vì vậy, bạn cũng sẽ nói "phụ thuộc vào"? Bạn sẽ kích hoạt bảng danh mục phẳng khi bạn có 10 danh mục? Hay 50? Thậm chí có thể vẽ một đường?
Celldweller

Cần biết các trường hợp với một số ví dụ để thay đổi mã được quan tâm trong khi kích hoạt danh mục phẳng.
Anurag Khandelwal
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.