Да, плоские столы все еще вещь. Вы можете включить плоские таблицы для продуктов и категорий в магазинах -> Конфигурация -> Каталог -> Витрина.
Зачем нам плоские столы?
Они предлагают значительное повышение производительности для больших каталожных данных. У одного из наших клиентов есть только 5 категорий и около 250 продуктов, поэтому не имеет значения, включена ли у вас квартира. Это действительно имело значение, когда мы включили его для другого магазина, в котором было 800 категорий, 17000 товаров и 5 мультистор. Повышение производительности становится очевидным, когда вы начинаете замечать, что происходит в базе данных. Вот как выглядит база данных, когда у вас есть несколько веб-сайтов.
Дело в том, что объединения становятся очень дорогими с увеличением размера таблицы даже с индексами. Плоские столы УМЕНЬШИТЬ (не исключать) СОЕДИНЕНИЯ.
Когда они созданы или обновлены
Плоские таблицы регенерируются, когда вы делаете полный переиндекс с bin/magento indexer:reindex
. Они обновляются при обновлении продукта или категории. Обновляются только соответствующие строки.
Плоские таблицы не генерируются на setup:di:compile
** Какие атрибуты входят в плоские таблицы? (и некоторые ограничения) **
Краткий ответ - это все атрибуты, которые будут использоваться в списке товаров (листинг + многоуровневая навигация). Фронтальные настройки хранилища атрибутов решают, следует ли включать атрибут в плоские таблицы
Все атрибуты не сглажены из-за ограничений, которые я упоминаю ниже.
Ограничение плоского стола
Наконец, есть одно ограничение для этих плоских таблиц, которое накладывается mysql. Существуют ограничения на размер строки и размер столбца в таблице. Вы можете прочитать больше об этом в таблицах MySQL.
Вы найдете этот <max_index_count>64</max_index_count>
интересный узел в config.xml модуля-каталога.
Надеюсь, это поможет.