Почему и когда использовать «Плоский каталог»?


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: могу ли я в любое время переключаться между плоским на eav и eav на плоский? 2: можно ли добавлять динамические столбцы при использовании flat?
— mdeveloper

Да, вы можете переключаться между ними. Вы также можете добавить динамические столбцы. Но убедитесь, что вы запустили переиндексацию после добавления нового атрибута в EAV
— Rohit Kundale

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


Это должно было быть первым, что они показали мне, когда я начал использовать magento.
— Домино

5

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

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

В более ранних версиях Magento необходимо было перестраивать плоский каталог каждый раз, когда вы вносили изменения в атрибуты продукта или ассоциации с категориями продуктов. В этом выпуске плоский каталог обновляется для вас - каждую минуту или в соответствии с вашей работой в Magento cron.

Опции плоского каталога не только включают индексаторы плоского каталога и плоского продукта, но также включают индексацию для правил каталога и цены корзины покупок. Если у вас есть большое количество SKU (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.