serdar güler yazmış:
Eğer sorun table lock mekanizması ise view ın problemizi çözmesi
mümkün değil. view ın okuduğu tablo da lock varsa view da lock ın
kalkmasını bekleyecektir.
Sorunun lockdan kaynaklandiğini düşünmüyorum.
Zira sorun cikaran script sonsuz döngüde ve her döngüde önce A
veritabanına baglanip sorgulamaları yapiyor göndermesi gereken mesaj
varsa B veritabanına baglanip tablodan select yapip işlemleri yapıp a
veritabanında updateleri gerçekleştiriyor.Mesaj yoksa maksimum 2 saniye
sonra, varsa tekrar döngü devam ediyor.
Bu bu şekilde 7/24 devam ettiği için bir süre sonra B veritabanına
baglantida sıkıntı çıkıyor.
Zira aynı şekilde çalısan ve sadece A veritabanını kullanan scipte bir
sorun yok. Sorunun sürekli B veritabanına baglanti kurulup
kapatılmasından kaynaklandığını düşünüyorum ancak kesin emin değilim.
myisam tablo kullananızın özel bi sebebi yoksa ınnodb ye
geçebilrsiniz. sonuçta transactional bi yapınız olduğu sonucunu
çıkartıyorum yazdıkarınızdan.
MyIsam kullanmamın özel bir sebebi yok. Ancak netten arastirdigimda
Myisamin insertlerde InnoDb den daha hızlı olduğunu okudum.
İkinci olarak Sunucuda bir ariza elektrik kesilmesi vb olduğunda
innoDbnin daha fazla hata verdigini hatırlıyorum sanki? Bilmiyorum
yanlışmı biliyorum?
bir de tabloları bölüp kulanmak isterseniz. partitioning ya da merge
table gibi çözümler de mysql de mevcut. bunlar her durumda view dan
çok daha fazla işinizi göreceklerdir.
On 10/22/09, OKAN <li...@ari-tech.com> wrote:
MyIsam ile cozmek isterseniz, pek pratik olmasa da uygulanabilir bir yontem
olarak tabloları boylenizi onerebilirim.
Ornegin:
log diye bir tablonuz varf ve surekli insert ve update uygulanıyorsa bunu
log_1, log_2, log_3, .... log_10 seklinde bolup, gelen verileri bu tablolara
eşit şekilde dagıtabilirsiniz.
Ornegin user_id'nin son 2 rakamına gore mesela.
Bu insert ve update esnasında lock olan table yapınızı dagıtmanızı saglar
oldukça da fark olusturucaktır.
Ayrıca, surekli table lock oldugu icin problem yaratan veritabanınızın tablo
bozulmalarına da sebebiyet verebilecegini unutmayınız.
OKAN
Bölmemi gerektirecek bir tablo yok şu anda.Loglari aylık ve günlük
tutup fazla sişmesini engelliyorum.
----- Original Message -----
From: Hasan Sertçelik
To: Özgür yazılımlarla çeşitli dillerde yazılım geliştirme
Sent: Thursday, October 22, 2009 3:31 PM
Subject: [Linux-programlama] Re: Mysql de farkli database deki tablolari
eşdeğer tutmak
serdar güler yazmış:
MyISAM ve Innodb tablolar arasındaki en önemli fark da bu zaten,
update işlemleri seyrek de gelse MyIsam tablolar update sırasında
tabloyu tümden kilitlediğinden, sizin durumunuz benzeri durumlarda
InnoDB tablolar daha çok öneriliyor.
Sistemin ayrıntılarını bilmeden çok da ahkam kesmek istemiyorum ama bi
test ortamınız varsa varsa farklı storage engineler deneyerek en uygun
ortamı yakalayabilirsiniz. Muhtemelen de geleceğiniz nokta sizi MyISAM
yerine InnoDB kullanmaya itecek gibi görünüyor.
Viewların sorunu çözüp çözmediği hafta sonu 60-70 canlı maçın olduğu
anlarda belli olur.
Çözmezse ya dediğiniz gibi tablo tiplerini değiştirip deneyecem, ya
farklı bir çözüm bulmaya çalışacam yada postgreSqle geçecem.
Teşekklürler.
Kolay gelsin.
On 10/22/09, Hasan Sertçelik <ha...@sertcelik.net> wrote:
serdar güler yazmış:
Tablolarda engine olarak ne kullanıyorsunuz?
InnoDB, MyISAM vs. ?
myisam kullanıyorum.
On 10/22/09, Altan Tanrıverdi <alt...@gmail.com> wrote:
Avea tablonuzda şu şekilde sorgu yaratın...
CREATE VIEW mac_sonuclari AS
SELECT id, mac, tarih ....
FROM turkcell.mac_sonuclari
Viewları oluşturdum.Teşekkürler ilginiz için.
2009/10/22 Hasan Sertçelik <ha...@sertcelik.net>
Altan Tanrıverdi yazmış:
Birbiriyle aynı 2 veritabanının hiçbir mantığı yok. Data yükünü böyle
paylaştıramazsınız; tam aksine performans düşüklüğüne yol açarsınız.
Diğer
veritabanından kurtulmanızı tavsiye ederim. Script içerisinde gerekli
güvenlik kontrollerini yaparak veya dediğim gibi iki user açarak bunu
rahatça aşarsınız.
Maalasef veritabanları birbirinin aynısı değil. Sadece 2 tablo aynısı
.
Veritabanının biri turkcell sms sistemi digeri avea
Ama içerik ve maçsonuc tabloları aynı. Bu tablolara bağlantı kurarken Şu
an
zaten 2 farklı userla çalısıyor ve sürekli "MySQL server has gone away"
hatası vermeye başlamasından dolayı aynı tabloyu diğer veritabanına
almak
istiyorum.
------------------------------
_______________________________________________
Linux-programlama mailing
listlinux-programl...@liste.linux.org.trhttp://liste.linux.org.tr/mailman/listinfo/linux-programlama
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
--
=======================================
Altan Tanriverdi
Software Engineer & Linux System Administrator
=======================================
------------------------------------------------------------------------------
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama