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_int
tabeli,
nazwa produktu w catalog_product_entity_varchar
tabeli,
cena produktu w catalog_product_entity_decimal
tabeli,
data utworzenia produktu w catalog_product_entity_datetime
tabeli,
opis produktu w catalog_product_entity_text
tabeli.
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
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.
źródło
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).
źródło