Veri Tabanındaki Mükerrer Kayıtlar
-
Merhaba,
Uzak sunucudaki Mysql veri tabanıma gönderdiğim kayıtların bazılarında mükerer kayıtlar oluşuyor. Fazla değil yani 10bin kayıt gittiyse 20 tane bir biri ardına kayıt oluşmuş. Merak ettiğim daha önce başına gelen var mı böyle bir durum. Ağdaki gecikmelerden vs. olabilir mi bu durum aksi halde oturup kodlara döneceğim.
-
Unique field yapsana abi
-
Oran çok düşük. Çekerken unique çeksen sıkıntı olmaz sanıyorum. Ağ bağlantısından değildir. Kodlara bakmak lazım. Mümkün mertebe parametreli sorgu ve transaction kullanın.
-
tablonun içinde tekrar eden alanlar olacak, unique field olursa hata almaz mıyım?
-
adam tuşa üst üste basmıştır hacım. double click gibi orada kontrolü kodda yapıyorsan bir yeri atlıyordur ondandır.
-
adam basmıyor tuşa uzun bir işlemin neticesi dönüyor da demek ki şartlar bir yerde değişiyor mecburen adım adım bakacağım. Teşekkürler cümleten.
-
bu senden kaynaklı değil bir anlık gecikme buna neden olabiliyor.
şöyleki oyunlarda bu çok kullanılan bir bug mesela darkorbit oyununda flax bugu vardı. tamamen bu mantık üzerinde adam bir flaxten milyonlar kasıyordu.
transaction ile çözülebilir görünüyor.
-
Tablon/tablolarin MyISAM mi InnoDB mi ?
-
dhmm bunu yazdı
Tablon/tablolarin MyISAM mi InnoDB mi ?
Evet
-
yawuz bunu yazdıdhmm bunu yazdı
Tablon/tablolarin MyISAM mi InnoDB mi ?
Evet
Hocam MyISAM mi ? InnoDB mi ? anlamadim :(
-
transactionları düzgün yönetememişsinizdir veya bazı kontrolleri kod tarafında yaptıysanız gecikme olduğu vs durumda yanıt alamadan kontrolden geçen aynı istekler (teklif butonuna arka arkaya basmak vs gibi.) kontrolleri güzelce geçip db ye çatanakkk diye giderse db de bunu sorgulamaz yazar :)
transactionlar isolation leveller vs uğraşmaktansa zaten düşük bi yüzdeyle oluyormuş, db tarafında çoklu alan için unique (tek başlarına unique olmayan ama 2-3 tanesi birleşince unique olan bi key yani) belirle geç hocam, aynı kayıt db ye geldiğinde unique key violation alırsın, mükerrer kayıttan kurtulursun. Mükerrer kayıt yaratmaya çalıştığında haberin olsun diyosan exception olarak 2627 olması gerekioydu kodu da, ona göre yakalayabilirsin.sonradan gelen edit : cevap yazdıktan sonra okudum, mysql miş pardon :)
MaviGozluDev tarafından 05/Nis/18 14:14 tarihinde düzenlenmiştir