Когда я должен использовать опцию плоского стола категории?

16

В качестве продолжения предыдущего вопроса я хотел бы знать:

Когда я должен использовать опцию плоского стола категории?

При поиске в Google я нашел совет, чтобы включить его " когда у вас очень много категорий ". Но что много ?

Я легко могу понять, что активация плоских столов для продуктов является хорошим решением с точки зрения производительности, но действительно ли это так же важно для каталогов?

И какие последствия выводят из этого? Я только что узнал, что включение плоских категорийных таблиц приводит к невозможности сохранить позиции категории товаров. По крайней мере, не так просто, как без плоской опции (спасибо Мариусу за вашу помощь). Есть ли еще какие-нибудь заметные вещи?

Заранее спасибо :)

Celldweller
источник

Ответы:

10

Если на вашем сервере установлен PHPMyAdmin, вы можете взглянуть на таблицы Magento. Вы увидите, что есть много, начиная с catalog_product_...и catalog_category_....

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

Чтобы облегчить нагрузку на MySQL и ускорить работу вашего магазина, Magento предлагает плоские столы. Например catalog_product_flat_1. Если вы посмотрите на структуру этой таблицы, то увидите, что в ней много основных данных о продукте, что означает, что, например, в списке продуктов категории, к этой таблице должен быть выполнен только один запрос вместо запроса несколько других таблиц, содержащих данные атрибута.

Однако эти данные агрегируются из данных в других таблицах, что означает, что каждый раз, когда вы сохраняете продукт, несколько indexes( System > Configuration > Index Management) обновляются для компиляции данных этого продукта. В некоторых случаях, например, при разработке, это может быть ненужным. Вы хотите увидеть все изменения немедленно, даже если время загрузки страницы может занять некоторое время.

Итак, в заключение, всякий раз, когда вы запускаете магазин для публики, включайте их, а при программировании старайтесь не использовать полные объекты продукта или каталога, а вместо этого использовать данные, предоставленные плоскими индексами.

Сандер Мангель
источник
Я думаю, что я всегда активировал бы плоские таблицы продуктов в производительной среде. Но я не был уверен в таблицах плоских категорий. Так ты говоришь, что всегда будешь активировать оба? Независимо от того, сколько у вас каталогов?
Celldweller
Всегда активируйте их, чем больше категорий, тем больше пользы от курса, но даже если у вас всего 10 категорий, он все равно сохранит пару запросов.
Сандер Мангель
4
Вы должны всегда активировать плоские объекты каталога, но в теории есть случай, когда он не работает. Это происходит, когда у вас есть много атрибутов, используемых в списке товаров, и вы превышаете максимальное число строк mysql. Я видел это только один раз. Вам не нужно сильно беспокоиться, но если это произойдет, вы поймете, почему.
Мариус
@Celldweller, можем ли мы предоставить больше информации по вашему вопросу?
Сандер Мангель
0

Если у вас много категорий или много пользовательских атрибутов для категорий, это хороший выбор, потому что сложность запроса снижена. Имейте в виду, что тяжелая нагрузка приносит еще большую пользу. Основным недостатком является то, что категории и flat_categories используют совершенно другой интерфейс, поэтому часто код должен быть очень осторожным в случае включенных плоских категорий.

Нильс Пройс
источник
Там они снова. Много и много. ;-) Значит, вы бы также сказали «зависит от»? Вы бы активировали таблицы плоских категорий, когда у вас есть 10 каталогов? Или 50? Можно ли вообще провести черту?
Celldweller
Нужно знать, каковы случаи с некоторыми примерами изменений кода, которые необходимо учитывать при включении плоского каталога.
Анураг Хандельвал