Вот ситуация.
Я использую magento 2.1.6 Enterprise edition. В документации magento было сказано, что "Magento использует триггеры базы данных MySQL для улучшения доступа к базе данных во время переиндексации".
Но мой вопрос заключается в том, что произойдет, если я буду использовать базу данных без триггеров. Потому что я планирую переместить базу данных в Google cloud SQL. В документации облака Google они сказали, чтобы избежать триггеров, если вы собираетесь использовать репликацию, поскольку это может привести к несогласованности в реплике.
Какое лучшее лучше всего подходит для этого?
Magento использует триггеры базы данных MySQL для улучшения доступа к базе данных во время переиндексации.
Magento не поддерживает какой-либо
custom triggers
в базе данных Magento поскольку пользовательские триггеры могут вводить несовместимости с будущими версиями Magento.Механизм индексации Magento использует значение статуса в процессе запуска reindex.
Вы можете проверить статус индексатора на панели администратора
или вручную используя командную строку. Просмотр списка индексаторов
Короче говоря, Magento 2 создает триггеры для каждого индекса
"Update by Schedule"
.Эти триггеры запускают любой
INSERT, UPDATE and DELETE
в любой из таблиц сущности.При запуске они создают новую запись с идентификатором объекта в отдельной таблице привязки.
Когда задание cron запускается, он сравнивает версию_идентификатора своего mview_statetable с version_ids таблицы изменений.
Индекс обновляется для всех объектов, которые помечены как измененные. Кадры для определенных объектов также недействительны (очищены).
Триггеры
Когда индекс установлен на "Обновить по расписанию", Magento 2 создает для него ряд триггеров. Только для catalog_product_flat создаются 30 триггеров.
Три триггера, которые вы видите здесь, реагируют на изменения в таблице "catalog_product_entity" (см. Таблицу). События: INSERT, UPDATE и DELETE. Поскольку существует 10 таблиц, которые влияют на содержимое материализованного представления catalog_product_flat, для покрытия всех случаев требуется 3 x 10 = 30 триггеров.
Если вы хотите изменить продукты каталога таким образом, который невозможен с помощью панели администрирования Magento, или это можно сделать быстрее с помощью прямого SQL-запроса с phpMyAdmin или со сценарием, это все еще возможно даже в интернет-магазине. Конечно, вам нужно хорошо знать таблицы MySQL Magento. Но частичные методы переиндексации из "Обновление по расписанию" гарантируют, что все необходимые индексы и плоские таблицы обновляются, и даже определенные кеши являются недействительными.
Ссылки: