Magento 2: Чи плоскі столи все ще є річчю?


17

Чи залишаються плоскі столи все, про що ми повинні турбуватися в Magento 2? Я знаю, що є інтерфейс користувача, де ми можемо ввімкнути плоскі столи, але я не впевнений, наскільки вони пройшли тестування, і якщо вони ще потрібні.

Якщо плоскі таблиці все ще є річчю - де / коли формуються та / або регенеруються атрибути для плоских таблиць. Це трапляється лише при перевстановленні? Або інші дії інтерфейсу можуть викликати генерацію плоскої таблиці? Це трапляється на php bin/magento setup:di:compile? Інші місця?

Також - як Magento вирішує, чи потрібно зробити атрибут плоским атрибутом? Чи всі атрибути EAV вирівняні? Або є інші, яких може не бути?

Відповіді:


24

Так, плоскі столи все ще річ. Ви можете ввімкнути плоскі таблиці для продуктів і категорій у магазинах-> конфігурація-> каталог-> вітрина. введіть тут опис зображення

Навіщо нам потрібні плоскі столи?

Вони пропонують значне підвищення продуктивності для великих даних про каталог. Один наш клієнт має лише 5 категорій і близько 250 товарів, тому це не має значення, якщо у вас квартира увімкнена або вимкнена. Це дійсно мало значення, коли ми ввімкнули його для іншого магазину, який налічував 800 категорій та 17000 товарів та 5 мультисторінок. Підвищення продуктивності стає очевидним, коли ви починаєте помічати, що відбувається в базі даних. Ось як виглядає база даних, коли у вас є кілька веб-сайтів.

плоскі таблиці продуктів для кожного магазину

те ж саме для категорій

Справа в тому, що приєднання стає дуже дорогою зі збільшенням розміру таблиці навіть за допомогою індексів. Плоскі столи ВИ зменшення (не усунення) ПРИЄДНАЄТЬСЯ.

Коли вони створюються або оновлюються

Плоскі таблиці відновлюються, коли ви робите повний реіндекс bin/magento indexer:reindex. Вони оновлюються за оновленням продукту чи категорії. Оновляються лише відповідні рядки.

Плоскі таблиці не генеруються на setup:di:compile

** Які атрибути входять у плоскі таблиці? (та деякі обмеження) **

Коротка відповідь - це всі атрибути, які будуть використовуватися в переліку продуктів (перелік + багатошарова навігація). Налаштування фронту магазину атрибутів вирішують, чи слід атрибут включати в плоскі таблиці

введіть тут опис зображення

Усі атрибути не вирівняні через обмеження, які я згадую нижче.

Обмеження плоского столу

Нарешті, є одне обмеження для цих плоских таблиць, яке накладається mysql. В таблиці є обмеження розміру рядків та розмірів стовпців Ви можете прочитати про це на MySQL межах таблиці

Цей <max_index_count>64</max_index_count>цікавий вузол ви знайдете в config.xml модуля-каталогу.

Сподіваюся, що це допомагає.


2
як щодо плоских замовлень? Можливість робити
платні

Чи можна DROPплоский стіл, а потім дозволити йому створювати indexer:reindex? наприклад, у випадку, коли столи вийшли з ладу після ремонту.
fritzmg

@ahnbizcad замовлення вже є рівними. таблиця замовлення продажів.
vitoriodachef

2

На підставі документації на magento для плоского столу, згаданого в https://docs.magento.com/m2/ce/user_guide/catalog/catalog-flat.html

Starting with Magento 2.3.0+, the use of a flat catalog is no longer a best practice and is not recommended. Continued use of this feature is known to cause performance degradation and other indexing issues


Багато запитів потрібно переписати :(
Rustyjim

0

Плоскі столи вже не річ. Це не додає жодних покращень продуктивності, а в наступних випусках буде застаріло

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.