ทำไมและเมื่อต้องใช้“ แค็ตตาล็อกแบน”?


24

ในขณะที่ทำการค้นคว้าเล็กน้อยสำหรับปัญหาเรื่องความเร็วของเว็บไซต์ magento ฉันมีลิงค์บางส่วนที่ผู้คนบอกว่าเปิดใช้งาน"Catalog Catalog"เพื่อเพิ่มประสิทธิภาพและความเร็ว

ปัญหาคือว่าทำไมมันไม่เปิดใช้งานโดยค่าเริ่มต้นคือความเร็วเป็นปัญหา

การเปิดใช้งาน "แค็ตตาล็อกแบบแบน" จะมีผลข้างเคียงหรือไม่

เว็บไซต์คุณภาพเยี่ยมของฉันมีผลิตภัณฑ์ 100 รายการและผลิตภัณฑ์ที่รวม 500 รายการและความเร็วค่อนข้างเป็นปัญหาเนื่องจากฉันโหลด 36 ผลิตภัณฑ์ในครั้งเดียว

การเปิดใช้งาน "แค็ตตาล็อกแบบแบน" จะแก้ไขปัญหาของฉันหรือไม่

คำตอบ:


35

ความแตกต่างระหว่างแคตตาล็อกEAVและแคตตาล็อกแบบแบนมีดังต่อไปนี้:

1. Eav Catalog

EAV เป็นโมเดลฐานข้อมูลค่าแอ็ตทริบิวต์เอนทิตีที่ข้อมูลอยู่ในรูปแบบปกติ แต่ละค่าข้อมูลคอลัมน์จะถูกเก็บไว้ในตารางชนิดข้อมูลที่เกี่ยวข้อง ตัวอย่างเช่นสำหรับผลิตภัณฑ์

รหัสผลิตภัณฑ์ถูกเก็บไว้ในcatalog_product_entity_intตาราง

ชื่อผลิตภัณฑ์ในcatalog_product_entity_varcharตาราง

ราคาสินค้าในcatalog_product_entity_decimalตาราง

วันที่สร้างผลิตภัณฑ์ในcatalog_product_entity_datetimeตาราง

คำอธิบายผลิตภัณฑ์ในcatalog_product_entity_textตาราง

EAV มีความซับซ้อนเนื่องจากสามารถรวมตารางได้ 5-6 ตารางแม้ว่าคุณจะต้องการรายละเอียดผลิตภัณฑ์เพียงรายการเดียว

คอลัมน์เรียกว่าคุณลักษณะใน EAV

2. แคตตาล็อกแบน

โมเดลแบบแบนใช้เพียงตารางเดียวดังนั้นจึงไม่ได้ทำให้เป็นมาตรฐานและใช้พื้นที่ฐานข้อมูลเพิ่มเติม มันล้างค่าใช้จ่าย EAV

เป็นเรื่องที่ดีเมื่อพูดถึงประสิทธิภาพเนื่องจากมันต้องการเพียงหนึ่งแบบสอบถามในการโหลดผลิตภัณฑ์ทั้งหมดแทนที่จะเข้าร่วม 5-6 ตารางเพื่อรับรายละเอียดของผลิตภัณฑ์เดียว

คอลัมน์เรียกว่าเขตข้อมูลในรูปแบบแบน

Magento ดำเนินการทำดัชนีซึ่งจะทำการสืบค้นคอลเลกชันมาตรฐานเป็นระยะและเติมตารางฐานข้อมูลแบบแบนในรูปแบบต่อไปนี้ ที่ * คือ id ร้านค้า

catalog_category_flat_store_*
catalog_product_flat_*

ตารางเหล่านี้มีข้อมูลผลิตภัณฑ์และหมวดหมู่ที่ไม่ได้ทำให้เป็นมาตรฐานที่ตั้งใจให้อ่านได้เท่านั้น สิ่งนี้ทำให้ Magento สามารถดึงข้อมูลหมวดหมู่และข้อมูลผลิตภัณฑ์ได้ในการสืบค้นเดียว


System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Productคุณสามารถเปิดใช้แคตตาล็อกแบนโดยไปที่ ตั้งค่านี้เป็นใช่

หากคุณกำลังเพิ่มคุณสมบัติใหม่ในตาราง EAV สำหรับแคตตาล็อก (System > Configuration > Index Management)แล้วอย่าลืมที่จะทำงานอีกครั้งการจัดทำดัชนี การจัดทำดัชนีใหม่จะรีเฟรชตารางแค็ตตาล็อกแบบแบนของคุณ

สำหรับข้อมูลเพิ่มเติมโปรดตรวจสอบ“ EAV” &“ Flat Catalog” ใน Magento


ok 1: ฉันสามารถสลับระหว่าง flat เป็น eav และ eav เป็น flat ได้ทุกเวลาหรือไม่ 2: สามารถเพิ่มคอลัมน์แบบไดนามิกเมื่อใช้ flat หรือไม่
mdeveloper

ได้คุณสามารถสลับไปมาระหว่างกันได้ คุณยังสามารถเพิ่มคอลัมน์แบบไดนามิก แต่ให้แน่ใจว่าคุณเรียกใช้การจัดทำดัชนีใหม่หลังจากเพิ่มแอตทริบิวต์ใหม่ลงใน EAV
Rohit Kundale

@RohitKundale: การเปิดใช้งาน Flat Catalog สำหรับผลิตภัณฑ์ขาดคุณสมบัติหลายอย่างและเป็นผลให้ฉันไม่ได้รับคุณสมบัติมากมายที่แสดงสำหรับผลิตภัณฑ์ ฉันทำดัชนีอีกครั้ง เหตุใดแอตทริบิวต์ทั้งหมดจึงไม่สร้างดัชนีสำหรับคอลัมน์แบบไดนามิกในขณะที่เปิดใช้งานแค็ตตาล็อกแบบแบน
Anurag Khandelwal


นี่เป็นสิ่งแรกที่พวกเขาแสดงให้ฉันเห็นเมื่อฉันเริ่มใช้วีโอไอพี
Domino

5

Magento ใช้โมเดล Entity-Attribute-Value (EAV) สำหรับจัดเก็บข้อมูลลูกค้าผลิตภัณฑ์และหมวดหมู่ในฐานข้อมูล แม้ว่ารุ่น EAV จะช่วยให้คุณมีคุณสมบัติที่ขยายได้อย่างสมบูรณ์สำหรับวัตถุเหล่านั้น แต่แอตทริบิวต์ของวัตถุจะถูกเก็บไว้ในหลาย ๆ ตารางแทนที่จะเป็นตารางที่มีขนาดใหญ่มาก

เนื่องจากแอททริบิวต์ถูกจัดเก็บในตารางจำนวนมากและที่มีสำเนาของแอททริบิวต์เดียวกันบางรายการเคียวรี SQL อาจยาวและซับซ้อน คุณสมบัติแคตตาล็อกแบบเรียบสร้างตารางใหม่ได้ทันทีโดยที่แต่ละแถวมีข้อมูลที่จำเป็นทั้งหมดเกี่ยวกับผลิตภัณฑ์หรือหมวดหมู่

ในเวอร์ชันก่อนหน้าของ Magento จำเป็นต้องสร้างแค็ตตาล็อกแบบแบนใหม่ทุกครั้งที่คุณทำการเปลี่ยนแปลงคุณสมบัติของผลิตภัณฑ์หรือการเชื่อมโยงหมวดหมู่ผลิตภัณฑ์ ในรุ่นนี้แคตตาล็อกแบบเรียบถูกอัพเดตสำหรับคุณ - ทุกนาทีหรือตามงานวีโอไอพี cron ของคุณ

ตัวเลือกแค็ตตาล็อกแบบแบนไม่เพียง แต่เปิดใช้งานแค็ตตาล็อกแบบเรียบและตัวจัดทำดัชนีผลิตภัณฑ์แบบแบน แต่ยังเปิดใช้งานการจัดทำดัชนีสำหรับแคตตาล็อกและกฎราคาตะกร้าสินค้า หากคุณมี SKUs จำนวนมาก (500,000 ขึ้นไป) Magento สามารถจัดทำดัชนีแคตตาล็อกและกฎราคาตะกร้าสินค้าได้อย่างรวดเร็วหากคุณเปิดใช้งานตัวเลือกผลิตภัณฑ์แคตตาล็อกแบบเรียบ


ในรุ่นนี้แคตตาล็อกแบบเรียบถูกอัพเดตสำหรับคุณ - ทุกนาทีหรือตามงานวีโอไอพี cron ของคุณ เวอร์ชันของคุณกำลังอ้างถึง
mdeveloper

ขออภัยฉันไม่ได้รับคะแนนของคุณ
Arunendra

ในตัวเลือกของคุณคุณได้อ้างอิงเวอร์ชันปัจจุบันเป็น 1.9 หรือ magento 2
mdeveloper

1
มันขึ้นอยู่กับคุณว่าเวอร์ชั่นไหนเหมาะกับคุณ Magento 2 มีข้อได้เปรียบมากกว่า
Arunendra

1
@Aendendra mdeveloper กำลังถาม Magento เวอร์ชันใดที่คุณอ้างถึงเมื่อคุณพูดว่า: "ในรุ่นนี้แคตตาล็อกแบบแบนจะได้รับการอัปเดตสำหรับคุณ" คุณกำลังพูดถึงรุ่นไหน? Magento 1.9 อัพเดตให้เราหรือไม่? เฉพาะใน Magento 2 เท่านั้นหรือ เวอร์ชั่นวีโอไอพีรุ่นใดที่เริ่มทำการอัพเดทสำหรับเรา?
Olivier

1

หมวดหมู่แฟลตไม่ได้อัปเกรดโดยอัตโนมัติแม้ใน Magento 1.9.2 ฉันไม่ได้ตรวจสอบ 1.9.3 เนื่องจากฉันจะสร้างดัชนีใหม่ด้วยตนเองหลังจากอัปเดตจำนวนมาก (เช่นระดับสต็อค)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.