Kapan saya harus menggunakan opsi tabel datar kategori?

16

Sebagai tindak lanjut dari pertanyaan sebelumnya saya ingin tahu:

Kapan saya harus menggunakan opsi tabel datar kategori?

Ketika mencari di Google, saya menemukan saran untuk mengaktifkannya " ketika Anda memiliki banyak kategori ". Tapi apa yang banyak ?

Saya dapat dengan mudah memahami, bahwa mengaktifkan tabel datar untuk produk adalah keputusan yang baik dalam hal kinerja, tetapi apakah itu benar-benar sama pentingnya dengan katalog?

Dan implikasi apa yang disimpulkan dari ini? Saya baru belajar bahwa mengaktifkan tabel kategori datar menyebabkan tidak dapat menyimpan posisi produk kategori. Setidaknya tidak semudah tanpa opsi flat (thx to Marius untuk bantuan Anda). Apakah ada hal-hal lain yang disebutkan?

Terima kasih sebelumnya :)

Celldweller
sumber

Jawaban:

10

Jika Anda memasang PHPMyAdmin di server, Anda dapat melihat tabel Magento. Anda akan melihat bahwa ada banyak yang dimulai dengan catalog_product_...dan catalog_category_....

Semua ini digunakan untuk setiap produk dan kategori sehingga itu berarti banyak pertanyaan yang rumit dan berat untuk setiap halaman yang Anda panggil.

Untuk meringankan beban pada MySQL dan mempercepat toko Anda Magento menawarkan tabel datar. Sebagai contoh catalog_product_flat_1. Jika Anda melihat struktur tabel ini, Anda akan melihatnya memiliki banyak data produk dasar yang berarti bahwa, misalnya dalam daftar produk kategori, hanya satu kueri yang harus dieksekusi ke tabel ini daripada meminta kueri beberapa tabel lain yang berisi data atribut.

Namun, data ini dikumpulkan dari data di tabel lain, yang berarti bahwa setiap kali Anda menyimpan beberapa produk indexes( System > Configuration > Index Management) di-refresh untuk mengkompilasi data produk ini. Dalam beberapa kasus seperti misalnya saat mengembangkan ini mungkin tidak perlu. Anda ingin melihat semua perubahan segera meskipun waktu buka halaman bisa memakan waktu cukup lama.

Jadi sebagai kesimpulan, setiap kali Anda meluncurkan toko ke publik, nyalakan dan ketika pemrograman cobalah untuk tidak menggunakan produk penuh atau objek katalog tetapi sebaliknya gunakan data yang disediakan oleh indeks datar.

Sander Mangel
sumber
Saya pikir saya akan selalu mengaktifkan tabel produk datar di lingkungan yang produktif. Tapi saya tidak begitu yakin tentang tabel kategori datar. Jadi Anda mengatakan Anda akan selalu mengaktifkan keduanya? Terlepas dari berapa banyak katalog yang Anda miliki?
Celldweller
Selalu aktifkan mereka, semakin banyak kategori semakin besar manfaatnya, tetapi bahkan ketika Anda hanya memiliki 10 kategori itu masih akan menyimpan beberapa pertanyaan.
Sander Mangel
4
Anda harus selalu mengaktifkan entitas katalog datar, tetapi secara teori ada kasus ketika tidak berfungsi. Ini terjadi ketika Anda harus banyak atribut yang digunakan dalam daftar produk dan Anda melampaui batas baris maks mysql. Saya pernah melihat itu terjadi hanya sekali sebelumnya. Anda tidak perlu terlalu khawatir, tetapi jika itu terjadi, Anda akan tahu sebabnya.
Marius
@Celldweller, bisakah kami memberikan info lebih lanjut tentang pertanyaan Anda?
Sander Mangel
0

Jika Anda memiliki banyak kategori atau banyak atribut yang dibuat khusus untuk kategori itu adalah pilihan yang baik karena berkurangnya kompleksitas kueri. Ingatlah bahwa beban berat lebih diuntungkan darinya. Kelemahan utama adalah bahwa kategori dan flat_categories menggunakan antarmuka yang sangat berbeda, sehingga sering kali kode harus sangat hati-hati jika ada kategori datar yang diaktifkan.

Nils Preuß
sumber
Itu mereka lagi. Banyak dan banyak. ;-) Jadi Anda juga akan mengatakan "tergantung pada"? Apakah Anda mengaktifkan tabel kategori datar ketika Anda memiliki 10 katalog? Atau 50? Apakah mungkin untuk menggambar garis?
Celldweller
Perlu tahu kasus-kasus apa dengan beberapa contoh untuk perubahan kode yang harus dijaga saat mengaktifkan katalog datar.
Anurag Khandelwal