M2.2.5: Может ли кто-нибудь объяснить роль/функциональность различных таблиц, используемых в процессе индексирования?


Я читал документацию об индексировании в Magento 2, но это очень поверхностно. Что мне интересно, так это как работают внутренние компоненты механизма индексирования. Кто-нибудь может мне это объяснить? Если я посмотрю, например, на соотношение категории/продукта, я могу определить следующее:

Следующие таблицы включены в мой настройка:

  • catalog_category_product
  • catalog_category_product_cl
  • catalog_category_product_index
  • catalog_category_product_index_replica
  • catalog_category_product_index_store1
  • catalog_category_product_index_store1_replica
  • catalog_category_product_index_store2
  • catalog_category_product_index_store2_replica
  • catalog_category_product_index_tmp

До сих пор я понимаю следующее о процессе индексирования:

  • Отношения категории/продукта хранятся в catalog_category_product.
  • Всякий раз, когда происходит изменение этого отношения, новая версия помещается в список изменений (catalog_category_product_cl), который должен быть получен реализацией материализованного представления с помощью сравнение версий в таблице mview_state.
  • catalog_category_product_index_tmp заполняется во время индексации и заменяется в конце процесса на catalog_category_product_index.

Но вот мои вопросы, которые у меня еще остались:

  • Какова цель _replica-таблицы?
  • Почему существуют индексы для каждого магазина, даже если в catalog_category_product_index есть store_id-таблица?
  • Не уверен, что это ошибка, но почему существуют различия между продуктами в catalog_category_product_index::store_id=1 и catalog_category_product_index_store1? Чтобы уточнить: В catalog_category_product_index У меня есть продукт это присваивается 6 идентификаторам категорий, в то время как один и тот же продукт в выделенном индексе _store1 присваивается только 4 идентификаторам категорий. Хотя это может быть ошибка.

Любая помощь/объяснение от основных разработчиков Magento или более опытных разработчиков Magento приветствуется.

Author: Giel Berkers, 2018-08-17

1 answers

catalog_category_product_index_tmp используется для хранения промежуточных данных для пакетного продукта в процессе индексации

*_replica таблицы используются для полного процесса индексации, чтобы не влиять на внешний вид магазина в процессе индексации

*_store* таблицы, добавленные в 2.2.5 для разделения индекса на магазин, и таблица catalog_category_product_index устарели

 6
Author: KAndy, 2018-08-17 12:52:14