DynamoDB'yi Azalan Sırada Nasıl Sorgularsınız
Varsayılan olarak bir DynamoDB Query, item'ları artan sort key sırasında döndürür.
Ama "bana en sonuncuları getir" erişim desenlerinin çoğu tersini ister — en yeni önce.
Düğme, Query üzerindeki tek bir boolean: ScanIndexForward. Onu false yapın, aynı
sorgu partition'ı ters yönde okur.
Tek bir parametredir, ama insanların kafasını karıştırır çünkü sonradan sonuçları sıralamakla (DynamoDB bunu yapmaz) karıştırmak kolaydır ve adı kontrol ettiği şeyin tersi gibi okunur.
DynamoDB'yi azalan sırada nasıl sorgularım?
Query'de ScanIndexForward=false ayarlayın. DynamoDB varsayılan olarak item'ları artan sort key sırasına göre döndürür; bu tek boolean'ı değiştirdiğinizde partition ters yönde okunur ve sort key'iniz bir zaman damgası ya da dizi olduğunda en yeni önce sonuçlar elde edersiniz. Yalnızca sıralamayı değiştirir, hangi item'ların eşleştiğini değil; ters yönlü okumalar ileri yönlülerle tam olarak aynı maliyettedir.
ScanIndexForward=true(varsayılan) → artan sort key sırası.ScanIndexForward=false→ azalan sıra — sort key'iniz bir zaman damgası veya dizi olduğunda en yeni önce.- Yalnızca sıralamayı etkiler, hangi item'ların eşleştiğini değil — buna hâlâ anahtar koşulu karar verir.
- Bedavadır. Ters sıra, ileriyle aynı maliyettedir; DynamoDB her iki şekilde de partition'ın depolanmış sırasını okur.
- Onunla birlikte
Limitkullanın ki tek bir ucuz okumada "en yeni N tanesini" alasınız.
Sorun: "bana en sonuncuları önce göster"
Diyelim ki çok oyunculu bir liderlik tablosu çalıştırıyorsunuz ve her oyuncunun skor olaylarını tek bir partition key altında, artan bir zaman damgasına göre sıralı saklıyorsunuz:
PK: GAME#42 SK: SCORE#2026-06-27T10:00:00Z points
PK: GAME#42 SK: SCORE#2026-06-27T10:05:00Z points
PK: GAME#42 SK: SCORE#2026-06-27T10:09:00Z pointsPanonun en yeni skorlara ihtiyacı var. GAME#42 üzerinde sade bir Query onları
en eski önce döndürür, bu yüzden her şeyi okuyup uygulamanızda tersine çevirmeye
yönelirsiniz — savurgan ve Limit eklediğiniz anda bozuk. DynamoDB onları doğrudan en
yeni önce geri verebilir.
ScanIndexForward nasıl çalışır
Bir partition'daki item'lar fiziksel olarak sort key'e göre sıralı depolanır. Bir
Query o sırada yürür; ScanIndexForward yalnızca yürüyüşün yönünü seçer:
true(varsayılan) — en düşük sort key'de başla, yukarı yürü (artan).false— en yüksek sort key'de başla, aşağı yürü (azalan).
Önemli nokta, bu, tablonun değil, okumanın bir özelliğidir — aynı item'lar, aynı
anahtar koşulu, sadece ters. Ve DynamoDB yalnızca zaten sıralanmış veri üzerinde bir yön
seçtiği için, azalan okumalar artan olanlarla
tam olarak aynı ucuzluktadır.
Onu Limit=10 ile eşleştirin, tek bir minimal maliyetli Query'de "en yeni 10 skor
olayını" alın.
Bir incelik: azalan bir sonuç kümesinde geriye doğru sayfalama yaparken,
LastEvaluatedKey/ExclusiveStartKey imleci hâlâ çalışır — yalnızca aynı taramanın her
sayfasında ScanIndexForward=false'u tutarlı tutun, yoksa imleç yönü ile sıra
uyuşmazlığa düşer.
DynoTable'da sorguyu oluşturmak
Anahtar koşulunun kendisini birleştirmek için (ve eşleşen attribute-adı/değer haritalarını görmek için) DynamoDB expression builder'ı kullanın.
DynoTable'da bir sekmeyi seçili bir anahtar üzerinden okur ve sıralama yönünü sekme
üzerindeki düğmeyle ayarlarsınız — ScanIndexForward'ı elle yazmaya gerek yok. En yeni
önce sonuçları önizlemek için düğmeyi çevirin.

Tuzaklar + sonraki adımlar
ScanIndexForwardtersine çevirir, rastgele bir attribute'a göre sıralamaz. Sıra her zaman sort key'e göredir — başka bir şeye göre sıralamak için o attribute'a sort key olarak (genellikle bir GSI aracılığıyla) ihtiyacınız var.- Uygulamanızda her şeyi okuyup sonra tersine çevirmeyin — bayrağı ayarlayın ve
Limitekleyin. - Çok sayfalı bir taramayı sayfalarken bayrağı tutarlı tutun, yoksa imleç sıra ile çatışır.
- Sayısal en yeni önce mi istiyorsunuz? Sort key'in doğru sıralandığından emin olun — sözlüksel sıranın eşleşmesi için sayıları sıfır doldurun.
- İlgili: sort-key stratejileri ve sayfalama.
API parametrelerine dokunmadan sonuç sırasını çevirmek mi istiyorsunuz? DynoTable'ı indirin ve tablolarınızı doğrudan sorgulayın.


