Buna benzer bir eklenti yazmak ve belli aralıklarla bu tabloyu boşaltmak istiyorum. Xenforo'daki hata raporlama sistemi gibi takıldığım kısım veritabanını çok şişirir mi?
bu tarz durumlarda sql tablosunun çok büyümemesi en büyük nedeni aynı hatanın her seferinde tabloya yazılmasından kaynaklanır.
bunun önüne geçmek için geçerli bir yöntemin iki farklı kullanış şekli var.
yöntemin çalışması için en az bir veya daha fazla sütünün uniq indexinin olması gerekiyor.
basit bir örnekle tabloda 4 tane sutun var. id, isim, soyisim, durum -> id primary auto increment
isim ve soyisim sütünlarının beraber olarak tek bir uniq indexi olsun.
insert ignore into (isim,soyisim,durum) values ('ali','veli',1);
bu query isim ve soyisim uniq olduğu için sadece bir kere db ye ekleme yapar.
tekrar çalıştırıldığında isim ve soyisim aynı anda db de var olduğundan ekleme yapmaz
fakat sadece insert ignore çalıştırdığınızda bu davranışı sergiler, direkt insert ile eklemek istediğinizde hata döner.
bu yöntem yola çıkarak sql veritabanına eklediğiniz kayıtlarda hata mesajının yazıldığı sutunu uniq yaparsanız ve insert queryinize ignore eklerseniz
bir hatayı sadece bir kere db ye yazacağı için çok fazla bir sorun yaşayacağınızı sanmam.