Dlaczego i kiedy używać „Płaskiego katalogu”?

24

Podczas badań nad wydaniem strony internetowej Magento, znalazłem kilka linków, w których ludzie mówią, że włącz „Płaski katalog”, aby zwiększyć wydajność i szybkość.

Problem polega na tym, że nie jest domyślnie włączony, szybkość jest problemem.

Czy włączenie „Płaskiego katalogu” również będzie miało negatywny wpływ?

Moja strona magento zawierała 100 produktów i 500 produktów w pakiecie, a szybkość jest dość problematyczna, ponieważ ładuję 36 produktów jednocześnie.

Czy włączenie „Płaskiego katalogu” rozwiąże mój problem?

mdeveloper
źródło

Odpowiedzi:

35

Różnica między katalogiem EAV a płaskim katalogiem jest następująca:

1. Katalog Eav

EAV to model bazy danych wartości atrybutów encji, w którym dane są w pełni w znormalizowanej formie. Każda wartość danych kolumny jest przechowywana w odpowiedniej tabeli typów danych. Przykład dla produktu

identyfikator produktu jest przechowywany w catalog_product_entity_inttabeli,

nazwa produktu w catalog_product_entity_varchartabeli,

cena produktu w catalog_product_entity_decimaltabeli,

data utworzenia produktu w catalog_product_entity_datetimetabeli,

opis produktu w catalog_product_entity_texttabeli.

EAV jest złożony, ponieważ łączy 5-6 tabel, nawet jeśli chcesz uzyskać tylko dane jednego produktu.

Kolumny są nazywane atrybutami w EAV.

2. Płaski katalog

Model płaski wykorzystuje tylko jedną tabelę, więc nie jest znormalizowany i zajmuje więcej miejsca w bazie danych. Usuwa obciążenie EAV,

Jest to dobre, jeśli chodzi o wydajność, ponieważ wystarczy tylko jedno zapytanie, aby załadować cały produkt zamiast łączyć 5-6 tabel, aby uzyskać tylko szczegóły jednego produktu.

Kolumny nazywane są polami w modelu płaskim.

Magento zaimplementowało indeksatory, które okresowo sprawdzają standardowe kolekcje i zapełniają płaskie tabele bazy danych w następującym formacie. Gdzie * to identyfikator sklepu.

catalog_category_flat_store_*
catalog_product_flat_*

Te tabele zawierają nienormalizowane dane o produktach i kategoriach przeznaczone wyłącznie do odczytu. Pozwala to Magento na pobranie danych kategorii i produktów w jednym zapytaniu.


Możesz włączyć katalog płaski, przechodząc do System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product. Ustaw na tak.

Jeśli dodajesz nowy atrybut w tabeli EAV dla katalogu. Nie zapomnij więc o ponownym indeksowaniu (System > Configuration > Index Management). Ponowne indeksowanie odświeża tabele płaskich katalogów.

Aby uzyskać więcej informacji, sprawdź „EAV” i „Flat Catalog” w Magento

Rohit Kundale
źródło
ok 1: czy mogę w dowolnym momencie przełączyć się z płaskiego na eav i eav na płaski? 2: czy dynamiczne kolumny można dodawać również w przypadku płaskiego?
mdeveloper
Tak, możesz przełączać się między nimi. Możesz także dodać kolumny dynamiczne. Pamiętaj jednak o ponownym indeksowaniu po dodaniu nowego atrybutu do EAV
Rohit Kundale,
@RohitKundale: Włączanie Płaskiego katalogu dla produktu z brakiem wielu atrybutów, w wyniku czego nie wyświetla się wiele funkcji dla produktów. Ponownie indeksowałem również. Dlaczego wszystkie atrybuty nie indeksują dynamicznych kolumn, a jednocześnie włączają katalog płaski?
Anurag Khandelwal
2
@AnuragKhandelwal Sprawdź tutaj
Rohit Kundale
To powinna być pierwsza rzecz, którą pokazali mi, kiedy zacząłem używać Magento.
Domino
5

Magento wykorzystuje model Entity-Attribute-Value (EAV) do przechowywania danych klientów, produktów i kategorii w swojej bazie danych. Chociaż model EAV umożliwia posiadanie całkowicie rozszerzalnych atrybutów dla tych obiektów, atrybuty obiektów są przechowywane w wielu tabelach, a nie w jednej bardzo dużej tabeli.

Ponieważ atrybuty są przechowywane w wielu tabelach - które obejmują kopie niektórych takich samych atrybutów - zapytania SQL mogą być długie i złożone. Funkcja płaskiego katalogu tworzy na bieżąco nowe tabele, w których każdy wiersz zawiera wszystkie niezbędne dane o produkcie lub kategorii.

We wcześniejszych wersjach Magento konieczne było przebudowywanie płaskiego katalogu za każdym razem, gdy wprowadzano zmiany w atrybutach produktu lub powiązaniach kategorii produktu. W tym wydaniu płaski katalog jest aktualizowany dla Ciebie - co minutę lub zgodnie z twoją pracą Magento cron.

Opcje płaskiego katalogu nie tylko włączają katalogi płaskie i indeksatory produktów płaskich, ale także umożliwiają indeksowanie reguł cenowych katalogów i koszyków. Jeśli masz dużą liczbę jednostek SKU (500 000 lub więcej), Magento może szybko indeksować reguły cen katalogowych i koszyków, jeśli włączysz opcję produktu z katalogu płaskiego.

Arunendra
źródło
W tym wydaniu płaski katalog jest aktualizowany dla Ciebie - co minutę lub zgodnie z twoją pracą Magento cron. do której wersji się odwołujesz
mdeveloper
Przepraszam, nie
rozumiem o co chodzi
w swojej opcji czy odwoływałeś się do bieżącej wersji jako 1.9. lub magento 2
mdeveloper
1
To zależy od Ciebie, która wersja jest dla Ciebie odpowiednia. Magento 2 ma więcej zalet.
Arunendra,
1
@Arunendra mdeveloper pyta, do której wersji Magento mówisz, mówiąc: „W tym wydaniu płaski katalog jest dla Ciebie aktualizowany”. O której wersji mówisz? Czy Magento 1.9 aktualizuje go dla nas? Czy to tylko w Magento 2? W której wersji Magento zaczęło się dla nas aktualizować?
Olivier
1

Kategorie mieszkań nie są automatycznie aktualizowane nawet w Magento 1.9.2. Nie sprawdziłem 1.9.3, ponieważ zawsze ręcznie odbudowuję indeksy po zbiorczych aktualizacjach (np. Na poziomie zapasów).

Steve Holdoway
źródło