Bir veritabanı içinde sıralanmış bir liste saklamak için arıyorum. Aşağıdaki işlemleri verimli bir şekilde yapmak istiyorum.
- Ekle (x) - Tabloya x kaydı ekle
- Sil (x) - Tablodan x kaydını sil
- Before (x, n) - Sıralanan listedeki x kaydından önceki 'n' kayıtlarını döndür.
- Sonra (x, n) - Sıralanan listedeki x kaydının ardından 'n' kayıtlarını döndür.
- İlk (n) - İlk 'n' kayıtlarını sıralanmış listeden döndür.
- Son (n) - Sıralanan listeden son 'n' kayıtlarını döndür.
- Compare (x, y) - Tablodan iki ve iki kayıt verilmişse, x> y olup olmadığını bulun.
Aklıma gelen basit bir yöntem, tablodaki bir çeşit 'sıralama' niteliğini depolamak ve bu niteliği sıralayarak sorgulamaktır. Ancak bu yöntemde bir rütbe ile bir kayıt ekleme / değiştirme masraflı bir işlem haline gelir. Daha iyi bir yöntem var mı?
Özellikle, Amazon'un SimpleDB'sini kullanarak tabloyu uygulamak istiyorum. Ancak ilişkisel veritabanı için genel bir cevap da yardımcı olmalıdır.
Yük profilinde güncelleme:
Bunu bir web uygulaması için planladığımdan, uygulamayı kullanan kullanıcıların sayısına bağlı.
100 k aktif kullanıcı varsa (süper iyimserlik: P), o zaman günlük yaklaşık tahminim
500k seçer, 100k ekler ve siler, 500k güncelleme
Masanın toplamda 500 bin dolara kadar büyümesini beklerdim.
Güncelleştirmeler, ekleme ve Karşılaştırma işlemlerinde optimizasyon yapmak istiyorum. Maddelerin sırası sürekli değişecek ve masayı güncel tutmam gerekiyor.