Merhaba,
Milyonlarca veri kaydı tutan bir tablom mevcut. Hızlı pagination yapısı kullanabilmek adına bir soru sormak istiyorum.
Daha önce 2 milyona yakın bir tablomda LIMIT,OFFSET kullanımlarında yaşadığım sorunu çözmek için pek çok yardım aldım.
İlk 300,500 bin veriye kadar 15 veri getir dediğimizde sorgu süresi 0.500 altında.
Fakat OFFSET son kayıtlara doğru gidince LIMIT 15 dahi olsa sorgu sürem 1.7 saniyelere kadar ulaşabiliyor. Sonuçta milyonlarca kayıt verinin bulunduğu tabloda en sonlara doğru tarama yapmaya başlıyor.
OFFSET kullanımı yerine id > xxx and id < xxx gibi yapı kullanınca aynı pagination mantığında 15 veriyi hangi offset olursa olsun 0.0080 saniyede getiriyor.
Tabi bu kullanımı yapınca bana gelen cevaplar genelde direk tablodan bir veri silinirse veya id değeri olurda güncellenir arada boşluk oluşursa sapıtıyor deniliyor.
Bu işlemlerin yapıldığı tablo odeme_kayitlari tablosu. Bu tablodan asla veri silinemiyor zaten silinmemesi de gerekiyor.
PHPMyAdmin üzerinden delete yapmaya çalıştığımızda trigger devreye girip silemezsin uyarısı veriyor. Aynı şekilde id değeri güncellenmeye kalkarsa onada id değerini güncelleyemezsin uyarısı veriyor.
Bu şartlar altında milyonlarca verinin bulunduğu bu tabloda offset yerine id > xx olayını kullanmanın bir sakıncası var mı?