Quassnoi telah menjalankan beberapa tes kinerja pada model kumpulan bersarang dan model daftar adjacency dan mendokumentasikan hasil dan rekomendasi dalam posting blognya Daftar ketetanggaan vs. kumpulan bersarang:MySQL . Ringkasan eksekutifnya adalah:
- Set bersarang lebih cepat untuk mengambil semua node anak atau semua node induk.
- Set bersarang adalah ide yang buruk jika Anda sering perlu memperbarui tabel.
Berikut kesimpulan dari artikelnya:
Artikel selanjutnya menunjukkan cara mendefinisikan tabel, menerapkan kueri, dan memberikan pengukuran kinerja. Penggunaan indeks spasial adalah ide yang cerdas untuk meningkatkan kinerja model kumpulan bersarang yang mungkin baru bagi Anda.
Jika Anda juga mempertimbangkan pendekatan tanpa MySQL maka Anda mungkin ingin melihat PostgreSQL yang merupakan basis data sumber terbuka dan gratis lainnya. PostgreSQL mendukung kueri rekursif dalam bentuk ekspresi tabel umum rekursif yang membuat kueri data hierarkis lebih mudah daripada di MySQL dan juga memberikan kinerja yang lebih baik. Quassnoi juga telah menulis artikel Daftar kedekatan vs. kumpulan bersarang:PostgreSQL yang menunjukkan detailnya.
Sementara kita berbicara tentang melihat pendekatan lain, database Oracle juga layak disebutkan. Oracle juga memiliki ekstensi khusus CONNECT BY
yang membuat kueri data hierarkis sangat mudah dan cepat. Artikel Quassnoi Daftar kedekatan vs. kumpulan bersarang:Oracle
lagi mencakup detail kinerja. Kueri yang Anda perlukan untuk mendapatkan semua anak sangat sederhana dalam hal ini:
SELECT *
FROM yourtable
START WITH id = 42
CONNECT BY parent = PRIOR id