Коли я повинен використовувати варіант плоскої таблиці категорії?


16

Як наступне запитання, я хотів би знати:

Коли я повинен використовувати варіант плоскої таблиці категорії?

Під час гугла я знайшов пораду, щоб включити її " коли у вас дуже багато категорій ". Але що багато ?

Я легко розумію, що активація плоских столів для продуктів - це хороше рішення з точки зору продуктивності, але чи це насправді так само важливо для каталогів?

І що з цього випливає? Щойно я дізнався, що включення таблиць із плоскою категорією призводить до неможливості збереження позицій продукту категорії. Принаймні, не так просто, як без плоского варіанту (THX для Маріуса за вашу допомогу). Чи є якісь інші згадувані речі?

Спасибі заздалегідь :)

Відповіді:


10

Якщо на вашому сервері встановлений PHPMyAdmin, ви можете подивитися таблиці Magento. Ви побачите, що починається багато catalog_product_...і з catalog_category_....

Все це використовується для кожного продукту та категорії, так що означає безліч складних і важких запитів для кожної сторінки, на яку ви телефонуєте.

Щоб полегшити навантаження на MySQL та пришвидшити ваш магазин, Magento пропонує плоскі столи. Наприклад catalog_product_flat_1. Якщо ви подивитеся на структуру цієї таблиці, ви побачите, що в ній є багато основних даних про продукти, це означає, що, наприклад, у списку товарів категорії, до цієї таблиці повинен бути виконаний лише один запит, а не запит на кілька інших таблиць, що містять дані атрибутів.

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

Отже, підсумовуючи, щоразу, коли ви запускаєте магазин для громадськості, увімкніть їх, а при програмуванні намагайтеся не використовувати повний товар або каталог товарів, а натомість використовуйте дані, надані плоскими індексами.


Я думаю, я б завжди активував плоскі таблиці продуктів у виробничому середовищі. Але я не був настільки впевнений у таблицях плоских категорій. Отже, ви кажете, що ви завжди активували б обоє? Незалежно від того, скільки у вас є каталогів?
Celldweller

Завжди активуйте їх, чим більше категорій, тим більша користь, але навіть якщо у вас є лише 10 категорій, це все одно збереже пару запитів.
Сандер Мангел

4
Ви завжди повинні активувати об'єкти плоского каталогу, але теоретично є випадок, коли це не працює. Це трапляється, коли у вас є багато атрибутів, які використовуються в переліку продуктів, і ви переходите за максимальну межу рядка mysql. Я бачив, як це відбувалося лише один раз. Вам не потрібно сильно хвилюватися, але у випадку, якщо це трапиться, ви будете знати, чому.
Маріус

@Celldweller ми можемо надати більше інформації щодо вашого питання?
Sander Mangel

0

Якщо у вас є багато категорій або багато атрибутів на замовлення для категорій, це хороший вибір через зменшення складності запитів. Майте на увазі, що велике навантаження отримує від цього ще більше. Основним недоліком є ​​те, що категорії та плоскі_категорії використовують дуже різний інтерфейс, тому часто код повинен бути дуже обережним у разі включених рівних категорій.


Там вони знову. Багато і багато. ;-) Отже, ви б також сказали "залежить від"? Чи активуєте ви таблиці плоских категорій, коли у вас є 10 каталогів? Або 50? Чи можливо навіть провести лінію?
Celldweller

Потрібно знати, які випадки мають бути прикладними прикладами змін коду при включенні плоского каталогу.
Анураг Ханделваль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.