Magento 2: Плоские столы Все еще существуют?


Являются ли плоские таблицы все еще тем, о чем нам нужно беспокоиться в Magento 2? Я знаю, что есть пользовательский интерфейс, в котором мы можем включить плоские таблицы, но я не уверен, насколько хорошо они были протестированы и нужны ли они вообще.

Если плоские таблицы все еще являются - где/когда создаются и/или восстанавливаются атрибуты для плоских таблиц. Происходит ли это только при переиндексации? Или другие действия пользовательского интерфейса могут вызвать генерацию плоской таблицы? Происходит ли это в php bin/magento setup:di:compile? Другие места?

Также - как Magento решает, нужно ли делать атрибут плоским атрибутом? Являются ли все атрибуты EAV сглаженными? Или есть другие, которых может и не быть?

Author: Balwant Singh, 2017-10-06

3 answers

Да, плоские столы - это все еще вещь. Вы можете включить плоские таблицы для товаров и категорий в магазинах ->конфигурация ->каталог ->витрина магазина. enter image description here

Зачем нам нужны плоские столы?

Они действительно обеспечивают значительное повышение производительности для больших данных каталога. У одного из наших клиентов всего 5 категорий и около 250 продуктов, так что на самом деле не имеет значения, есть у вас квартира или нет. Это действительно имело значение, когда мы включили его для другого магазина, в котором было 800 категории и 17000 товаров и 5 магазинов. Повышение производительности становится очевидным, когда вы начинаете замечать, что происходит в базе данных. Вот как выглядит база данных, когда у вас несколько веб-сайтов.

flat product tables for each store

same thing for categories

Суть в том, что соединения становятся очень дорогими с увеличением размера таблицы даже с индексами. Плоские таблицы УМЕНЬШАЮТ (но не устраняют) соединения.

Когда они создаются или обновляются

Плоские таблицы являются восстанавливается при полной переиндексации с помощью bin/magento indexer:reindex. Они обновляются при обновлении продукта или категории. Обновляются только соответствующие строки.

Плоские таблицы не создаются на setup:di:compile

**Какие атрибуты входят в плоские таблицы? (и некоторые ограничения) **

Краткий ответ - это все атрибуты, которые будут использоваться в списке продуктов (список + многоуровневая навигация). Параметры интерфейса хранилища атрибутов определяют, следует ли включать атрибут в плоский таблицы

enter image description here

Все атрибуты не сглажены из-за ограничений, о которых я упоминаю ниже.

Ограничение плоского стола

Наконец, есть одно ограничение для этих плоских таблиц, которое накладывается mysql. В таблице существуют ограничения на размер строк и столбцов. Вы можете прочитать больше об этом на ограничения таблицы mysql

Вы найдете этот <max_index_count>64</max_index_count> интересный узел в config.xml из модуля-каталога.

Надеюсь, это поможет.

 27
Author: Abhishek Jakhotiya, 2017-10-07 05:18:14

На основе документации 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

 7
Author: Sarjan Gautam, 2019-11-01 02:17:23

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

 0
Author: bxN5, 2019-10-01 14:53:40