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
как насчет плоских заказов? Возможность делать плоские заказы не такая, как у категорий и продуктов
ahnbizcad
Можно ли 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

Плоские таблицы больше не вещь. Это не добавляет никаких улучшений производительности и будет устаревшим в следующих выпусках

bxN5
источник