DynamoDB ne zaman kullanılmamalı?
İş yükünüz analitikse ya da erişim desenleriniz bilinmiyorsa DynamoDB'yi atlayın. DynamoDB, bilinen ve anahtar tabanlı erişim desenlerine sahip operasyonel (OLTP) iş yükleri için özel olarak inşa edilmiştir — join'i ya da toplama işlevi yoktur ve anlık sorgular pahalı tam tablo taramalarına düşer. OLAP raporlaması ya da gelişen ilişkisel ihtiyaçlar için başka bir motor seçin.
Kötü uyanlar
- Anlık analitik ve raporlama (OLAP) —
GROUP BY,SUMya daAVGyoktur; her toplama bir taramadır ya da kendiniz bakımını üstlendiğiniz önceden hesaplanmış bir toplamdır. Geçici çözümler için bkz. toplama kılavuzu. - Normalize ilişkisel şemalar — DynamoDB JOIN operatörünü bilinçli olarak dışarıda bırakır; AWS'nin kendi tavsiyesi denormalize etmektir.
- Bilinmeyen ya da hızla gelişen erişim desenleri — anahtarları sorgular etrafında tasarlarsınız. Sorguları henüz adlandıramıyorsanız, her yenisi bir tablo yeniden tasarımı ya da tam bir tarama riski taşır.
- Tam metin arama ve zengin sorgulama — bkz. DynamoDB tam metin arama destekler mi?; aramanın yeri bir arama indeksidir.
- Büyük nesneler — öğeler 400 KB ile tavan yapar; medyanın ve dokümanların yeri, tabloda bir işaretçiyle birlikte S3'tür.
Önce reddedilen, sonra fiyatlandırılan toplama
Analitik uyumsuzluğu bir zevk meselesi değildir. PartiQL'de DynamoDB'den gruplanmış bir sayım isteyin; ifade hiçbir şey okumadan önce reddedilir:
SELECT status, COUNT(*) FROM "orders" GROUP BY statusValidationException: Unsupported clause: GROUP BY
HTTP 400Gruplamayı bırakıp düz toplamı isteyin; bir adım daha erken, ayrıştırıcıda başarısız olur:
SELECT COUNT(*) FROM "orders"ValidationException: Unexpected path component at 1:8:5
HTTP 400COUNT bu lehçede hiç işlev değildir; dolayısıyla ayrıştırıcı onu bir öznitelik yolu olarak okur ve parantezde pes eder.
Geriye kendi yazdığınız Scan kalır ve onun bir bedeli vardır. 50 GB'lık bir tabloyu baştan sona okumak 6.553.600 nihai tutarlı okuma birimine mal olur — yani taranan toplam boyutun 4 KB birimi cinsinden yarısı. us-east-1'de talep üzerine modda bu $0.82 eder.
O tek sayıyı saatlik yenileyin; ayda $598 eder. Sayacın bakımını yazarken üstlenmek ya da bir analitik depoya dışa aktarmak daha ucuz yanıttır ve ikisi de DynamoDB'nin sizin için yapmadığı iştir.
Parladığı yer
Bunun tersi liste tam olarak DynamoDB'nin en güçlü olduğu alandır: her ölçekte tek haneli milisaniyede kalması gereken, öngörülebilir anahtar tabanlı okuma ve yazmalara sahip yüksek hacimli operasyonel iş yükleri — sepetler, oturumlar, profiller, oyun durumu, IoT olayları. DynamoDB ne zaman kullanılır rehberi olumlu tarafı anlatıyor.
Daha derine inin
Kararsızsanız, sırada DynamoDB ne zaman kullanılır sayfasını okuyun. Zaten DynamoDB'desiniz ve SQL'i mi özlüyorsunuz? DynoTable, masaüstünden canlı tablolara karşı JOIN ve GROUP BY çalıştırır — ve fiyatlandırma hesaplayıcısı, bağlanmadan önce iş yükünüzün neye mal olacağını söyler.
Kaynaklar
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
- Constraints in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Query — Amazon DynamoDB API Reference
En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı. 400 KB rakamı 2026-07-28 tarihinde yeniden onaylandı; AWS onu hizmet kotaları sayfasından Constraints.html içine taşıdı.
2026-07-28 tarihinde Node v24.18.0 üzerinde @aws-sdk/client-dynamodb 3.1095.0 ile DynamoDB Local 3.3.0'a karşı yeniden üretildi; her iki ValidationException mesajı da birebirdir. Scan maliyeti, eşitlenmiş AWS fiyatlandırma tablomuzdaki us-east-1 tarifelerinden hesaplanmıştır.