Hızlı Silme İşlemi Mysql
-
Selam müritler,
şimdi 2.000 gönderili bir grup var diyelim, bu grubun silindiğini düşünelim feysbuk gibi. bu 2000+Grup Bilgilerinin olduğu verilerin silme işlemi yaklaşık 1dk falan olur diye düşünüyorum 100+ aktif kullanıcı olduğunda. Şimdi bu verilerin silme işlemini nasıl hızlandırabilirim ? Var mıdır yolu yordamı ?
-
durum diye bir parametre belirlersin grubun durumunu aktiften pasife çekersin böylelikle kullanıcılar erişemez ama mysql'de kalır.
Belli aralıklarla otomatik olarak temizlersin
-
gosterimden kaldirip cronlarla sunucunun daha az yogun oldugu saatlerde tetikleyip silersin
-
Bu tarz durumlarda lazy deletion yapılabilir. Silindi olarak işaretlersin, (boolean bir field koyarsın) bakım günlerinde fiziksel olarak silersin. Veritabanı için 2000 satır silmek de büyük iş değil onuda söyleyeyim.
-
S2buyuk bunu yazdı
Bu tarz durumlarda lazy deletion yapılabilir. Silindi olarak işaretlersin, (boolean bir field koyarsın) bakım günlerinde fiziksel olarak silersin. Veritabanı için 2000 satır silmek de büyük iş değil onuda söyleyeyim.
2000 den fazla olabilir, ancak şimdi diğer arkadaşların dediği gibi durum olayını eklersem ki var zaten yine 2000 verinin durumunu güncellemek zaman alacaktır yada daha fazla verinin. Bu yüzden alternatif yollar düşünüyorum.
Gösterim için while kullanıyorum dolayısıyla continue; kullanabilirim ancak misal twitter tarzı sayfalama da ilk gelen sayfa eğer ful grup gönderisiyle dolarsa ve continue; işlerse o grup silinmişse mecburen boş gelecektir sayfa
-
Hocam valla sunulan yöntemler en güzel yöntemler zaten yok veritabanı da sıkıntı olur diyorsan sana uç noktadan bir senaryo çizeyim
Grup gösterimleri yapılırken gösterim yapılan grubun id veya adı gibi belirleyici bir şeyin olduğu session var mı diye kontrol edersin yoksa listeleme yapılır eğer varsa grup mesaj id sini yapılacak işlemler tablosunda silinecek diye eklenir sin doğal olarak basit bir if else ve tk kayıt işlemi gerçekleşir veriyisilmeyi de cron lar sin
İftara az kaldı sacmaladim ise mazaretimden dolayi hoş görün
-
coder2 bunu yazdı
Hocam valla sunulan yöntemler en güzel yöntemler zaten yok veritabanı da sıkıntı olur diyorsan sana uç noktadan bir senaryo çizeyim
Grup gösterimleri yapılırken gösterim yapılan grubun id veya adı gibi belirleyici bir şeyin olduğu session var mı diye kontrol edersin yoksa listeleme yapılır eğer varsa grup mesaj id sini yapılacak işlemler tablosunda silinecek diye eklenir sin doğal olarak basit bir if else ve tk kayıt işlemi gerçekleşir veriyisilmeyi de cron lar sin
İftara az kaldı sacmaladim ise mazaretimden dolayi hoş görün
Hocam dedikleri yöntemler güzel de ben çekimi yaparken twitter tarzı sayfalama yapıyorum ya sql içine if gibi bişi yazmam lazım grubu kontrol etmesi için yada daha farklı bi yöntem eyvallah yinede
-
-
-
Claw bunu yazdı
ayrıyetten buradaki komut sanırım cron veriyor sorguya 30 günde bir yap gibi vs vs inceledim kodları ancak bu da mysql üstüne yük bindirmez mi ? Yani yine cron veririm ancak şöyle bir şey lazım bana sorguda silinmeyen gönderileri de göstermemesi lazım if eklemem lazım sorguya
-
sonuç itibariyle bir işlem yapılacak ve bunu nasıl yaparsan yap bir yük bindirecek. Eğer performans senin için çok önemliyse güncel verileri nosql veritabanlarından birinde tutup arşiv olan daha eskileri ilişkisel bir veritabanında tut.
mysql sorgusu yerine stored prosedure kullanırsan if kullanabilirsin