Hizmetler
Bize Ulaşın

Graf Veritabanı Kıyaslaması: Neo4j vs FalkorDB vs Memgraph

Ekrem Sarı
Ekrem Sarı
Güncellenme tarihi: 15 Nis 2026

Neo4j, FalkorDB ve Memgraph'i 120.000 Amazon ürün yorumlarından türetilen sentetik bir graf üzerinde kıyasladık (381K düğüm, 804K kenar). 12 sorgu şablonunu her biri 1.000 ölçümle çalıştırdık, 6 parti boyutunda veri alımını test ettik, 60 saniye boyunca 32 iş parçacığına kadar sürekli eşzamanlı yük uyguladık ve bellek, soğuk başlatma, karma iş yükü ve indeks etkisini ölçtük.

FalkorDB, 8 iş parçacığında Neo4j ve Memgraph'ten daha yüksek verim sağladı.

Graf veritabanı kıyaslama sonuçları

Eşzamanlı verim

Loading Chart

QPS (saniyedeki sorgu sayısı), sürekli çok iş parçacıklı yük altında veritabanının saniyede kaç okuma sorgusunu yanıtladığını ölçer. Her çalışma 60 saniye sürer. Yüksek olması daha iyidir.

Sorgu gecikmesi (p50)

p50 ortanca gecikmedir: tüm sorguların yarısı bu değerden daha hızlı tamamlanır. Düşük olması daha iyidir.

  • Nokta arama: ID'ye göre tek bir düğüm getirir. FalkorDB'nin Redis hash tabloları bellek içi O(1) arama yapar ve yaklaşık 3x daha hızlıdır.
  • Dolaşma: Bir düğümden komşularına (1 atlamalı) veya komşuların komşularına (2 atlamalı) yürüyün. FalkorDB 2 atlamayı 2.9x daha hızlı yapar.
  • Toplulaştırma: Marka başına yorum sayar, ortalama yıldız puanlarını hesaplar.
  • Filtre + tarama: Tüm dataset'teki yorumları yıldız puanına göre filtreler.

Veri alım verimi

Veri alım verimi, veritabanının saniyede kaç yorum yazabildiğini ölçer. Grafikteki her nokta farklı bir parti boyutudur: tek bir sorguya kaç yorumun gruplandığı. Yüksek olması daha iyidir.

Parti boyutu 1'de Memgraph öne geçiyor (1.427/sn). Parti boyutu arttıkça FalkorDB dik bir şekilde ölçekleniyor ve yaklaşık parti 500 civarında Memgraph'i geçiyor. Neo4j, parti boyutundan bağımsız olarak ~10.600/sn'de plato yapıyor. 5.000 parti boyutunda FalkorDB 22.784/sn'ye ulaşıyor; bu, 1'lik parti performansının 77x katı.

Bu konudaki graf veritabanı kıyaslama metodolojimiz hakkında daha fazla bilgi edinebilirsiniz.

Önemli bulgular

FalkorDB 8 iş parçacığında 6.693 QPS'e ulaşıyor ve Neo4j'ün 6.7x katı

Redis'in bellek içi veri yapıları ve olay döngüsü, düşük gecikmeli sorguları yüksek paralellikle birleştirmesini sağlar. 8 iş parçacığından sonra, Redis'in tek iş parçacıklı çekirdeği tavan olduğu için verim plato yapar. Neo4j 16 iş parçacığında zirveye ulaşır (1.010 QPS), ardından 32 iş parçacığında düşer (927 QPS); bu da iş parçacığı çekişmesine işaret eder.

FalkorDB 1.1ms'de soğuk başlatılıyor ve Neo4j'den 82x daha hızlı

Neo4j, yeniden başlatmanın ardından ilk sorguyu kabul etmek için 90ms sürüyor. İlk ısınma sorgusu 274ms sürüyor; ardından 34ms'ye oturması yaklaşık 3 sorgu alıyor. FalkorDB 1.1ms'de hazır ve ilk sorgu 0.4ms'de. Pod'ların büyüyüp küçüldüğü bir mikroservis veya sunucusuz kurulumda bu fark önemlidir.

İndeksler: Neo4j'de 1.700x fark, FalkorDB'de ~1x

İndeksler olmadan Neo4j'ün deep_feature_products sorgusu 293ms sürdü. İndekslerle 0.17ms. Bu 1.712x fark demektir. Memgraph benzer bir hassasiyet gösterdi (sorguya bağlı olarak 160-898x). FalkorDB'nin sonuçları indeksli veya indekssiz yaklaşık aynı kaldı çünkü Redis hash tabloları zaten örtük indeks işlevi görüyor.

Bellek: Aynı graf için 415MB vs 2.668MB

  • Memgraph: 415MB
  • FalkorDB: 496MB
  • Neo4j: 2.668MB (JMX heap kullanımı)

Neo4j'ün JVM'i başlangıçta 4GB önceden ayırır; bu nedenle süreç düzeyindeki belleği (VmRSS), gerçek veri kullanımından bağımsız olarak her zaman ~5.2GB olur. Anlamlı metrik JMX heap metriğidir. Kapasite planlaması için kullanılacak sayı 2.7GB zirvesidir.

Neo4j en ağır toplulaştırmayı kazandı

FalkorDB, 11/12 sorguda en düşük gecikmeye sahipti. İstisna agg_feature_sentiment (filtreleme ile duyguya göre gruplama) idi; burada Neo4j'ün sorgu optimize edicisi daha iyi bir yürütme planı üretti: 131ms vs FalkorDB'nin 152ms.

Karma iş yükü (%80 okuma, %20 yazma)

8 iş parçacığı, 60 saniye, her üç veritabanında da sıfır hata:

  • FalkorDB: 50.223 işlem (837 QPS)
  • Neo4j: 44.256 işlem (738 QPS)
  • Memgraph: 28.040 işlem (467 QPS)

Yazma işlemleri, bunların hiçbirinde okuma performansını belirgin şekilde düşürmedi.

Ekibimiz, iş süreçlerinizden birini yapay zeka ajanlarıyla ücretsiz olarak otomatikleştirsin.
Bir süreci otomatikleştir

Bu kıyaslamadaki mimariler

Her veritabanı kendi yönetim arayüzünü sunar. Bu ekran görüntüleri, aynı dataset'in (16.127 düğüm, 24.318 kenar) her üçüne yüklendiğini ve aynı COMPARED_WITH dolaşma sorgusunun çalıştırıldığını gösterir.

FalkorDB

FalkorDB, Redis'in bellek içi anahtar-değer deposu üzerine kurulu bir graf modülüdür. Sorgular openCypher'dır, ancak altında Redis hash tabloları vardır. Bu nedenle nokta aramaları 0.044-0.048ms arasında gerçekleşir.
Bu kıyaslamadaki diğer iki veritabanı, aynı sorgularda 2-3x daha yüksek ölçüldü. Takas şu ki Redis'in tek iş parçacıklı çekirdeği nedeniyle eşzamanlı verim 8 iş parçacığından sonra ölçeklenmeyi durdurur.

FalkorDB Browser. Sol panel graf meta verilerini gösterir (6 düğüm etiketi, 8 kenar türü, 9 özellik anahtarı). Sorgu paneli doğrudan openCypher çalıştırır. Bellek kullanımı yalnızca graf indeksi için 4 MB olarak raporlanır (veriler Redis belleğinde yaşar).

Neo4j

Neo4j JVM üzerinde çalışır. JIT derleme sayesinde tekrarlanan sorgular zamanla hızlanır (ısınma: 274ms -> 34ms). GC duraklamaları kuyruk gecikmesini etkiler ancak IQR aykırı değer temizliği ile yakalanır. Sorgu optimize edicisi karmaşık toplulaştırma planlarını iyi yönetir ve agg_feature_sentiment kazanımı buradan gelir. Maliyet, 4GB heap ön tahsisi ve GC yüküdür.

Neo4j Browser. Sol kenar çubuğu düğüm etiketlerini (Marka, Kategori, Özellik, Ürün, Yorum, Yorumcu), ilişki türlerini ve özellik anahtarlarını gösterir. Alt panel COMPARED_WITH dolaşmasını etkileşimli bir graf olarak görüntüler. Aynı 16.127 düğüm ve 24.318 ilişki.

Memgraph

Memgraph C++ ile yazılmıştır. JVM yükü yoktur. Tam dataset için 415MB, üçü arasında en düşüğüdür. Sorgu başına minimum ek yük sayesinde bireysel eklemelerde en hızlıdır (1.427/sn). Ancak eşzamanlı verimde geride kalır (zirve 684 QPS). Bolt uyumludur, bu nedenle Neo4j sürücüsüyle çalışır.

Memgraph Lab graf şeması. 6 düğüm türü ve 8 kenar türü genelinde 16.127 düğüm, 24.318 ilişki.

Graf veritabanı kıyaslama metodolojisi

Ortam

  • RunPod 8 vCPU (AMD EPYC x86_64), 32GB RAM, Ubuntu 24.04 LTS
  • Yerel kurulum, Docker yok. Her üç veritabanı da aynı makinede, localhost bağlantılarıyla.
  • Python 3.12.3. Tek iş parçacıklı testler için kalıcı oturumlar, çok iş parçacıklı testler için bağlantı havuzundan çağrı başına oturumlar.

Veri

  • 120.000 sentetik yorum, Zipf (markalar, özellikler) ve Poisson (varlıklar, ilişkiler) dağılımlarından üretildi; sabit seed=42.
  • 6 düğüm türü: Yorum, Ürün, Yorumcu, Marka, Özellik, Kategori
  • 8 kenar türü: ABOUT, WRITTEN_BY, IN_CATEGORY, MADE_BY, HAS_POSITIVE, HAS_NEGATIVE, MENTIONS, COMPARED_WITH

Sorgular

12 Cypher şablonu 5 kategoriye yayılmıştır: nokta arama (3), 1 atlamalı dolaşma (2), 2 atlamalı dolaşma (2), toplulaştırma (3), filtre (1), tam tarama (1). Her parametreli sorgu, 10 farklı parametre değeriyle, her biri 100 kez, sorgu başına veritabanı başına 1.000 ölçüm için çalıştırılır.

Parametreler, Zipf ağırlıklı seçim kullanılarak tüm ID alanından örneklenir; böylece hem popüler hem nadir öğeler test edilir.

Üç örnek:

Nokta arama: İndeksli ID'ye göre tek bir düğüm getirir

2 atlamalı dolaşma: Bir markadan ürünleri aracılığıyla yorumlarına yürüyün

Toplulaştırma: Çok atlamalı birleştirme ve hesaplama ile tam graf taraması

Ölçüm

  • Zamanlama: time.perf_counter_ns(), 500 ısınma sorgusu, sorgu başına en az 100 çalıştırma
  • İstatistikler: 10.000 bootstrap örneği, %95 CI, IQR aykırı değer temizliği (3.0x faktör). Hem ham hem filtrelenmiş veriler raporlanır.
  • Bellek: Neo4j için JMX heap kullanımı üzerinden (VmRSS anlamsızdır çünkü JVM önceden ayırır), FalkorDB için Redis used_memory_rss üzerinden, Memgraph için /proc/{pid}/status VmRSS üzerinden.

Adillik

  • Her üç veritabanında aynı bağlantı havuzu boyutu, ısınma sayısı, Cypher sorguları, veri ve makine.
  • Eşzamanlılık testi: 60 saniyelik sürekli yük, 1, 2, 4, 8, 16 ve 32 iş parçacığında, sabit pool_size=32 ile. Sorgu karışımı: %40 1 atlamalı dolaşma, %30 2 atlamalı dolaşma, %20 toplulaştırma, %10 3 atlamalı dolaşma.

Test edilen veritabanları

Kıyaslamalarımızı ve veri odaklı içgörülerimizi kaçırmayın. Düğme Google'ı açar; AIMultiple'ı seçmeniz, Google arama sonuçlarında AIMultiple'ı daha sık görmek istediğinizi onaylar.
GoogleTercih edilen kaynak olarak ekle

Sınırlamalar

Tek makine, veritabanı başına tek düğüm. Dağıtık veya küme kıyaslaması yok. Neo4j Enterprise kümeleme ve Memgraph replikasyonu kapsam dışındadır.

Gerçek Amazon yorumlarından türetilen dağılımlara sahip sentetik veri. Belirli üretim iş yükü desenleriyle eşleşmeyebilir.

Ölçülmeyenler: disk kalıcılığı/kurtarma, tam metin arama, graf algoritmaları (PageRank, topluluk tespiti) ve yazma ağırlıklı iş yükleri (>%50 yazma).

Farklı sürücüler: Neo4j ve Memgraph Neo4j Python sürücüsünü kullandı, FalkorDB kendi sürücüsünü kullandı. Ek yük farkı tek iş parçacıklı testlerde <0.5ms oldu.

Sonuç

FalkorDB, 11/12 sorguyu kazandı, 6.693 QPS'e ulaştı ve 1.1ms'de soğuk başlatıldı. Okuma ağırlıklı graf iş yükleri için bu kıyaslamadaki en hızlı seçenektir. Memgraph en bellek verimli seçenektir (415MB vs 2.7GB). Neo4j en geniş ekosistemi sunar: RBAC, kümeleme, izleme ve karmaşık toplulaştırma planlarını her iki alternatiften daha iyi yöneten bir sorgu optimize edicisi.

Mimari tavanı belirler. Dağıtık kümeler, 1M+ düğümlü graflar ve yazma ağırlıklı iş yükleri, bu sıralamaları değiştirebilecek testlerdir.

Bu araştırmayı kaynak gösterin

Yayınlayacağınız yere uygun formatı seçin. Bağlantılı sürümü CMS'inize yapıştırmak, geri bağlantıyı korur.

Ekrem Sarı (2026) - "Graf Veritabanı Kıyaslaması: Neo4j vs FalkorDB vs Memgraph". AIMultiple.com adresinde çevrimiçi yayımlanmıştır. Erişim tarihi: 15 Nisan 2026, kaynak: https://aimultiple.com/graph-databases [Çevrimiçi Kaynak]

Sarı, E. (2026, 15 Nisan). Graf Veritabanı Kıyaslaması: Neo4j vs FalkorDB vs Memgraph. AIMultiple. https://aimultiple.com/graph-databases

@misc{sari2026,
  author = {Sarı, Ekrem},
  title  = {{Graf Veritabanı Kıyaslaması: Neo4j vs FalkorDB vs Memgraph}},
  year   = {2026},
  month  = apr,
  howpublished    = {\url{https://aimultiple.com/graph-databases}},
  note   = {AIMultiple. Erişim tarihi: 15 Nisan 2026}
}
Ekrem Sarı
Ekrem Sarı
Yapay Zeka Araştırmacısı
Ekrem, AIMultiple'da bir Yapay Zeka Araştırmacısı ve Veri Analistidir. Yapay zeka ve LLM sistemleri için uygulamalı benchmark'lar tasarlar ve yürütür.
Tam Profili Görüntüle

Yorum yapan ilk kişi olun

E-posta adresiniz yayınlanmayacak. Tüm alanlar gereklidir. Yorumlar orijinal dilinde bırakılır.

0/450