Разница между каталогом 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
Magento использует модель Entity-Attribute-Value (EAV) для хранения данных о клиентах, продуктах и категориях в своей базе данных. Хотя модель EAV позволяет вам иметь полностью расширяемые атрибуты для этих объектов, атрибуты объекта хранятся в нескольких таблицах, а не в одной очень большой таблице.
Поскольку атрибуты хранятся во многих таблицах, включая копии одних и тех же атрибутов, запросы SQL могут быть длинными и сложными. Функция плоского каталога создает новые таблицы на лету, где каждая строка содержит все необходимые данные о продукте или категории.
В более ранних версиях Magento необходимо было перестраивать плоский каталог каждый раз, когда вы вносили изменения в атрибуты продукта или ассоциации с категориями продуктов. В этом выпуске плоский каталог обновляется для вас - каждую минуту или в соответствии с вашей работой в Magento cron.
Опции плоского каталога не только включают индексаторы плоского каталога и плоского продукта, но также включают индексацию для правил каталога и цены корзины покупок. Если у вас есть большое количество SKU (500 000 и более), Magento может быстро проиндексировать правила цен каталога и корзины покупок, если вы включите опцию продукта плоского каталога.
источник
Плоские категории не обновляются автоматически даже в Magento 1.9.2. Я не проверял 1.9.3, так как я всегда перестраивал индексы вручную после массовых обновлений (например, на уровне запасов).
источник