เมื่อใดที่ฉันควรใช้ตัวเลือกประเภทโต๊ะแบน


16

ตามคำถามก่อนหน้านี้ฉันต้องการทราบว่า:

เมื่อใดที่ฉันควรใช้ตัวเลือกประเภทโต๊ะแบน

ในขณะที่ googling ฉันพบคำแนะนำให้เปิดใช้งาน " เมื่อคุณมีหมวดหมู่มาก " แต่อะไรกันนะ ?

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

และสิ่งที่เกี่ยวข้องสรุปจากนี้ ฉันเพิ่งเรียนรู้ว่าการเปิดใช้งานตารางหมวดหมู่แบบแฟลตทำให้ไม่สามารถบันทึกตำแหน่งผลิตภัณฑ์หมวดหมู่ได้ อย่างน้อยก็ไม่ง่ายเหมือนไม่มีตัวเลือกแบบแบน (ขอบคุณสำหรับMariusสำหรับความช่วยเหลือของคุณ) มีสิ่งที่กล่าวถึงอื่น ๆ อีกไหม?

ขอบคุณล่วงหน้า :)

คำตอบ:


10

หากคุณมีการติดตั้ง PHPMyAdmin บนเซิร์ฟเวอร์ของคุณคุณสามารถดูตารางของ Magento คุณจะเห็นว่ามีจำนวนมากที่เริ่มต้นด้วยและcatalog_product_...catalog_category_...

ทั้งหมดนี้ใช้สำหรับแต่ละผลิตภัณฑ์และหมวดหมู่ดังนั้นจึงมีคำค้นหาที่ซับซ้อนและหนักหน่วงสำหรับทุกหน้าที่คุณเรียก

เพื่อแบ่งเบาภาระใน MySQL และเร่งความเร็วร้านของคุณ Magento มีโต๊ะแบน catalog_product_flat_1เช่น หากคุณดูโครงสร้างของตารางนี้คุณจะเห็นว่ามีข้อมูลผลิตภัณฑ์พื้นฐานจำนวนมากซึ่งหมายความว่าตัวอย่างเช่นในรายการหมวดหมู่ผลิตภัณฑ์จะต้องดำเนินการค้นหาเพียงแบบสอบถามเดียวในตารางนี้แทนที่จะสืบค้น หลายตารางอื่น ๆ ที่มีข้อมูลคุณลักษณะ

อย่างไรก็ตามข้อมูลนี้รวบรวมจากข้อมูลในตารางอื่นซึ่งหมายความว่าทุกครั้งที่คุณบันทึกผลิตภัณฑ์หลายรายการindexes( System > Configuration > Index Management) จะถูกรีเฟรชเพื่อรวบรวมข้อมูลผลิตภัณฑ์นี้ ในบางกรณีเช่นในขณะที่การพัฒนานี้อาจไม่จำเป็น คุณต้องการเห็นการเปลี่ยนแปลงทั้งหมดทันทีแม้ว่าเวลาในการโหลดหน้าเว็บอาจใช้เวลาสักครู่

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


ฉันคิดว่าฉันจะเปิดใช้งานตารางผลิตภัณฑ์แบบเรียบเสมอในสภาพแวดล้อมที่มีประสิทธิผล แต่ฉันไม่แน่ใจเกี่ยวกับตารางหมวดหมู่แบบเรียบ ดังนั้นคุณบอกว่าคุณจะเปิดใช้งานทั้งสองเสมอ? ไม่ว่าคุณมีแคตตาล็อกกี่แห่ง
Celldweller

เปิดใช้งานทุกครั้งยิ่งมีหมวดหมู่มากขึ้นเท่าไรก็ยิ่งได้รับประโยชน์แน่นอน แต่แม้ว่าคุณจะมีหมวดหมู่เพียง 10 หมวดหมู่เท่านั้นก็จะยังคงบันทึกคำค้นหาไว้สองสามข้อ
Sander Mangel

4
คุณควรเปิดใช้งานเอนทิตีแค็ตตาล็อกแบบคงที่เสมอ แต่ในทางทฤษฎีแล้วมีกรณีเมื่อมันไม่ทำงาน สิ่งนี้จะเกิดขึ้นเมื่อคุณมีคุณสมบัติหลายอย่างที่ใช้ในรายชื่อผลิตภัณฑ์และคุณเกินขีด จำกัด mysql max row ฉันเคยเห็นมันเกิดขึ้นเพียงครั้งเดียวก่อน คุณไม่ต้องกังวลมาก แต่ในกรณีที่เกิดขึ้นคุณจะรู้ว่าทำไม
Marius

@ Celldweller เราสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับคำถามของคุณ
Sander Mangel

0

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


พวกเขาอยู่ที่นั่นอีกครั้ง มากและมาก ;-) ดังนั้นคุณจะพูดว่า "ขึ้นอยู่กับ" ด้วยหรือไม่ คุณจะเปิดใช้งานตารางหมวดหมู่แบบเรียบเมื่อคุณมี 10 แคตตาล็อกหรือไม่ หรือ 50 เป็นไปได้ไหมที่จะวาดเส้น?
Celldweller

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