Чому і коли використовувати “Плоский каталог”?


24

Під час проведення розрядних досліджень щодо випуску швидкості на веб-сайті magento, я отримав кілька посилань, де люди кажуть, що вони дозволяють "Плоский каталог" підвищити продуктивність та швидкість.

Проблема полягає в тому, що чому це не включено за замовчуванням, швидкість є проблемою.

Чи дозволить "Плоский каталог" також мати негативний вплив?

На моєму веб-сайті magento було 100 товарів і 500 продуктів у комплекті, швидкість - це досить важлива проблема, оскільки я завантажую одночасно 36 товарів.

Чи ввімкнення "Плоский каталог" вирішить мою проблему?

Відповіді:


35

Різниця між каталогом EAV та каталогом Flat полягає в наступному:

1. Каталог Eav

EAV - модель бази даних значень атрибутів сутності, де дані повністю в нормованому вигляді. Кожне значення даних стовпців зберігається у відповідній таблиці типів даних. Наприклад, для продукту,

ідентифікатор продукту зберігається в catalog_product_entity_intтаблиці,

назва продукту в catalog_product_entity_varcharтаблиці,

ціна товару в catalog_product_entity_decimalтаблиці,

дата створення продукту в catalog_product_entity_datetimeтаблиці,

опис продукту в catalog_product_entity_textтабл.

EAV є складним, оскільки він приєднується до 5-6 таблиць, навіть якщо ви хочете отримати деталі лише одного продукту.

Стовпці називаються атрибутами в EAV.

2. Плоский каталог

Плоска модель використовує лише одну таблицю, тому вона не нормалізується і використовує більше простору бази даних. Він очищає EAV накладні витрати,

Це добре, коли йдеться про продуктивність, оскільки для завантаження цілого продукту буде потрібно лише один запит, а не 5-6 таблиць, щоб отримати лише одну деталь продукту.

Стовпчики називаються полями в плоскій моделі.

Magento реалізував індексатори, які періодично будуть запитувати стандартні колекції та заповнювати плоскі таблиці баз даних у наступному форматі. Де * - це ідентифікатор магазину.

catalog_category_flat_store_*
catalog_product_flat_*

Ці таблиці містять ненормовані дані про товари та категорії, призначені лише для читання. Це дозволяє Magento отримувати дані категорії та продукту в одному запиті.


Ви можете ввімкнути плоский каталог, перейшовши до System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product. Встановіть це так.

Якщо ви додаєте новий атрибут у таблицю EAV для каталогу. Тоді не забудьте запустити реіндексацію (System > Configuration > Index Management). Повторна індексація оновлює ваші плоскі таблиці каталогів.

Для отримання додаткової інформації перегляньте “EAV” та “Плоский каталог” в Magento


ОК 1: чи можу я в будь-який час перемикатися між плоскими на ev та eav на квартиру? 2: Чи можна додавати динамічні стовпці і при використанні плоских?
девелопер

Так, ви можете перемикатися між ними. Ви також можете додати динамічні стовпці. Але переконайтеся, що ви запустили
реіндексацію

@RohitKundale: Увімкнення плоского каталогу для продукту відсутнє багато атрибутів, і як результат, я не отримую багато функцій для продуктів. Я також переіндексував також. Чому всі атрибути не індексуються для динамічних стовпців, вмикаючи рівний каталог?
Анураг Ханделваль


Це мало бути першим, що вони мені показали, коли я почав користуватися магенто.
Доміно

5

Magento використовує модель Entity-Attribute-Value (EAV) для зберігання даних про клієнтів, продуктів і категорій у своїй базі даних. Хоча модель EAV дозволяє вам мати повністю розширювані атрибути для цих об'єктів, атрибути об'єктів зберігаються в декількох таблицях, а не в одній дуже великій таблиці.

Оскільки атрибути зберігаються у багатьох таблицях - а це включає копії одних і тих же атрибутів - запити SQL можуть бути довгими і складними. Функція плоского каталогу створює нові таблиці на льоту, де кожен рядок містить усі необхідні дані про товар чи категорію.

У попередніх версіях Magento потрібно було переробляти плоский каталог щоразу, коли ви вносите зміни в атрибути продукту або асоціації з категоріями продуктів. У цьому випуску плоский каталог оновлюється для вас - щохвилини або відповідно до вашої роботи Magento cron.

Параметри плоского каталогу не тільки дозволяють використовувати рівний каталог та індексатори плоских товарів, але також дозволяють проводити індексацію за правилами цін по каталогу та кошику. Якщо у вас є велика кількість артикулів (500 000 або більше), Magento може індексувати правила каталогів та правила цінових кошиків швидко, якщо увімкнути опцію продуктового каталогу.


У цьому випуску плоский каталог оновлюється для вас - щохвилини або відповідно до вашої роботи Magento cron. про яку версію ви посилаєтесь
mdeveloper

Вибачте, що я не
розумію

у вашому варіанті ви позначали поточну версію як 1.9. або magento 2
розробник

1
Від вас залежить, яка версія вам підходить. Magento 2 має більшу перевагу.
Арунендра

1
@Arunendra mdeveloper запитує, на яку версію Magento ви звертаєтесь, коли ви говорите: "У цьому випуску для вас оновлений плоский каталог". Про який реліз ви говорите? Чи оновлює його Magento 1.9 для нас? Чи тільки в Magento 2? У якій версії Magento це почало оновлюватись для нас?
Олів'є

1

Категорії квартир не оновлюються автоматично навіть у Magento 1.9.2. Я не перевіряв 1.9.3, оскільки я завжди вручну перебудовував індекси після масових (наприклад, запасів) оновлень.

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