mysql ve innodb
mysql ve innodb
S.A. arkadaşlar.
forumda bir çok yerde benimda takıldığım transaction olayı sorulmuş. Öğrendim ki mysql ile transaction olayı kullanabilmek için innodb tablo yapısını kullanmak gerekli şu an tablo türlerim myisam ve programda baya ilerlemiş durumdayım. Şu an tablo yapısını innodb ye çevirsem bir problem yaşarmıyım. Ne bileyim verilere birşey olurmu. Alan tip tanımlamarı innodb ye geçtikten sonra sorun çıkararırmı yani myisam iken kullandığım varchar örneğin varrrchar olarak değişmelimi örneğin yada sorgularda herhangi bir sorun çıkarmı. Yani transaction olayını kullanmak şart benim için zaten firebird e de çok alışmıştım ama internet üzerindeki bağlantı yavaşlığı yüzünden mysql e geçmek zorunda kaldım ve geçiş çok şeyi değiştirmeme sebep oldu yine bu tür sorunlar yaşamak istemem. Ve benim aklıma gelmeyen ama sizin bu konuda şöyle bir problem yaşarsın dediğiniz ne olursa paylaşırsanız sevinirim. Geçişte hiç bir sorun yaşamazsam bile myisam dan innodb ye geçtikten sonra ileride karşılaşabileceğim zorluklar ve problemler varmıdır. Aklınaza gelen her konuda beni aydınlatırsanız sevinirim.
forumda bir çok yerde benimda takıldığım transaction olayı sorulmuş. Öğrendim ki mysql ile transaction olayı kullanabilmek için innodb tablo yapısını kullanmak gerekli şu an tablo türlerim myisam ve programda baya ilerlemiş durumdayım. Şu an tablo yapısını innodb ye çevirsem bir problem yaşarmıyım. Ne bileyim verilere birşey olurmu. Alan tip tanımlamarı innodb ye geçtikten sonra sorun çıkararırmı yani myisam iken kullandığım varchar örneğin varrrchar olarak değişmelimi örneğin yada sorgularda herhangi bir sorun çıkarmı. Yani transaction olayını kullanmak şart benim için zaten firebird e de çok alışmıştım ama internet üzerindeki bağlantı yavaşlığı yüzünden mysql e geçmek zorunda kaldım ve geçiş çok şeyi değiştirmeme sebep oldu yine bu tür sorunlar yaşamak istemem. Ve benim aklıma gelmeyen ama sizin bu konuda şöyle bir problem yaşarsın dediğiniz ne olursa paylaşırsanız sevinirim. Geçişte hiç bir sorun yaşamazsam bile myisam dan innodb ye geçtikten sonra ileride karşılaşabileceğim zorluklar ve problemler varmıdır. Aklınaza gelen her konuda beni aydınlatırsanız sevinirim.
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Re: mysql ve innodb
Merhabalar,
MyISAM dan InnoDB ye geçişte alan tipleriyle ilgili hiç bir sorun yaşamayacaksınız, fakat MyISAM ın desteklediği bazı index yapılarını InnoDB desteklemez örneğin,
AutoIncrement bir alan ile başka bir alanı aynı anda InnoDB de Primary Key yapamazsınız, bir diğer konu SELECT FOR UPDATE deyimini MyISAM tabloları desteklerken InnoDB desteklemeyecektir zaten gerekte yok çünkü InnoDB nin kendi içinde kayıt kilitleme mekanizması mevcuttur şimdilik aklıma gelen yaygın kullanılabilecek farklılıklar bunlar.
Kolay gelsin.
MyISAM dan InnoDB ye geçişte alan tipleriyle ilgili hiç bir sorun yaşamayacaksınız, fakat MyISAM ın desteklediği bazı index yapılarını InnoDB desteklemez örneğin,
AutoIncrement bir alan ile başka bir alanı aynı anda InnoDB de Primary Key yapamazsınız, bir diğer konu SELECT FOR UPDATE deyimini MyISAM tabloları desteklerken InnoDB desteklemeyecektir zaten gerekte yok çünkü InnoDB nin kendi içinde kayıt kilitleme mekanizması mevcuttur şimdilik aklıma gelen yaygın kullanılabilecek farklılıklar bunlar.
Kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: mysql ve innodb
Teşekkürler arkadaşım. MySQL ile ilgili her konuda mutlakada desteğin var, açıkçası bu sorumda da ilk cevabı senden bekliyordum tahmin ettiğim gibi de oldu. Tekrar teşekkür ederim ancak birşey sormak istiyorum yanlış anlamış olabilirim SELECT FOR UPDATE derken konuyu biraz daha açabilirmisin benim bundan anladığım query içinde SELECT, UPDATE ile başlayan bir sorgu yazamayacağım. Yoksa bir bütün olarak SELECT FOR UPDATE komutndanmı bahsediyorsun öyle birşey olduğunuda açıkçası bilmiyordum. Oysaki query lerle SELECT, UPDATE en çok kullandığım sorgu türüm ben tablolarla değil query lerle çalışıyorum ve eğer bir güncelleme gerekirse tekrar update sorgusu ile bunu yapıyorum. Eğer böyle ise değişikliği göze alamam açıkçası.
Ayrıca bir sorum daha olacak sadece transaction olayına ihtiyaç duyduğum tabloları innodb yapsam diğerleri myisam kalsa bir problem olurmu.
Henüz cevap verilmediği için sonradan aklıma gelen sorularım için editliyorum kusuruma bakmayın. Tablo yapısında bende innodb görünmüyor neden olabilir yada ne yapmam gerekli. Teşekkür ederim
Ayrıca bir sorum daha olacak sadece transaction olayına ihtiyaç duyduğum tabloları innodb yapsam diğerleri myisam kalsa bir problem olurmu.
Henüz cevap verilmediği için sonradan aklıma gelen sorularım için editliyorum kusuruma bakmayın. Tablo yapısında bende innodb görünmüyor neden olabilir yada ne yapmam gerekli. Teşekkür ederim
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Re: mysql ve innodb
"select for update" ile seçilen kayıtları başka bir kullanıcı o an için editleyemez yani kilitler, bu işe yarıyor.
InnoDB nin lisanslı olduğunu unutmayın, başınız ağrıyabilir.
Edit: "select for update" ile çekilen kayıtları başka bir kullanıcı select ile çekebilir ancak update edemez (readonly), ayrıca yine başka bir kullanıcı "select for update" ile çekemez.
InnoDB nin lisanslı olduğunu unutmayın, başınız ağrıyabilir.
Edit: "select for update" ile çekilen kayıtları başka bir kullanıcı select ile çekebilir ancak update edemez (readonly), ayrıca yine başka bir kullanıcı "select for update" ile çekemez.
En son mkysoft tarafından 15 Eki 2009 04:16 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: mysql ve innodb
Teşekkür ederim. Bu büyük bir sorun gibi görünüyor innodb yapısının ayrıntıları bilmiyorum şimdilik ama. Şöyle bir durum söz konusu seçilen kriterlere göre kullanıcı gerekirse tüm kayıtları listeleyebilir ve listeden seçeceği kayıtı editleyebilir. Bu durumda kullanıcının tüm listeyi aldığını farz edelim ve öylecede bıraktı gitti. Desene bu durumda yandık kimse birşey yapamayacak.
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Re: mysql ve innodb
@mkysoft 'unda açıkladığı gibi SELECT FOR UPDATE seçilen kayıtları siz bırakana kadar kilitler ama anladığım kadarıyla siz böyle bir yapı ihtiyacı hissetmemiş ve kullanmamışsınız normal kayıtları listelerken sorun olmayacaktır. InnoDB tablo yapısı MySQL 4.0 ve üzeri versiyonlarda gelir mySQL 6 ile InnoDB gibi transactional yapıda çalışayan birde Falcon tablo yapısı gelmiştir InnoDB den daha performanslı çalışıyor genel anlamda fakat bazı dezavantajlarıda var ayrıntılı karşılaştırmaları nette bulabilirsiniz. Ayrıca MyISAM ve InnoDB yi bir arada kullanabilrsiniz sorun çıkmaz, tabi transcation başlattıp ROLLBACK yaptığınızda eğer arada MyISAM tablolarda işlem yaptıysanız ilgili işlemler geri alınmaz.serbek_tr yazdı:Teşekkür ederim. Bu büyük bir sorun gibi görünüyor innodb yapısının ayrıntıları bilmiyorum şimdilik ama. Şöyle bir durum söz konusu seçilen kriterlere göre kullanıcı gerekirse tüm kayıtları listeleyebilir ve listeden seçeceği kayıtı editleyebilir. Bu durumda kullanıcının tüm listeyi aldığını farz edelim ve öylecede bıraktı gitti. Desene bu durumda yandık kimse birşey yapamayacak.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: mysql ve innodb
Saygıya değer arkadaşlarım, açıklamarınız gerçekten mysql ile fazla bir tecrübesi olmayan ben için gerçekten faydalı oldu. Hakkınızı helal edin, emeğiniz ve ayırdığınız vakit için teşekkürümü kabul edin. Saygılar
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Re: mysql ve innodb
Daha kestirme cevap vereyim MySQL kullancaksan MyISAM kullan
İkisini karıştırmanı tavsiye etmem. Transaction,Foregein key..vb kullanacaksan Firebird'e yönel...

Re: mysql ve innodb
Battosai, çok profesyonel olmasamda uzun zamandır Firebird kullanıyorum, şu ana kadar yaptığım projelerde genellikle lokale hitap ediyordu. Ciddi anlamda projelerim oldu Firedird üde ihtiyacım olan kadar öğrendim sayılır ama şu ana kadar isteklerime cevap verememezlik etmedi açıkçası. Taki karşıma organizasyon olarak ciddi bir proje çıkıncaya kadar ciddiyetten kastım lokale hitap eden değil uluslar arası lokasyonlardan tek bir merkeze bağlanma durumundan bahsediyorum. Ve projeme öncelikle firebird ile başladım bayada ilerledim taki lokasyonlardan test etmek istediğimiz zamana kadar ve test aşamasında açıkçası yüzüm kızardı tek bir kaydı post etmek 20 sn leri buldu 10 kayıtlık bir listeyi almak dakikaları buldu. Yerin dibine girdim ve o an bu projede Firebird den vazgeçtim ve bu durumu daha önce burda sizlerle paylaştım ama hemen hemen herkes olamaz bu kadar fark dedi. Hatta ben acemice bir database tasarımı mı yaptım diye de düşündüm. Tek Tablo ve tek bir kayıt 10 sn in altına inmedi malesef bundan daha basit nasıl bir db yapısı olabilirki yine tek tablo 10 kayıt, listelemek dakika olmasada 15 sn altına düşmedi. Bunu aynı serverda mysql,firebird,mssql ile test ettim en başarılısı mysql oldu, saniye ile ifade edilmez işler anlık oldu sanki sadece 100 kayıtlı dolu dolu birden çok tablo bağlantısı içeren sorgular 4-5 saniye bekledi. Firebird diyince bunları açıklama gereği hissettim, ama şimdi söz konusu ortak bir proje ve birden fazla proje söz konusu olunca transaction olmadan sağlam bir kodlama mümkün değil. Çünkü aynı anda eklenecek yada değişecek bir kayıt hem firebird hem mssql hemde mysql deki tablolara güncelleniyor dolayısı ile birinde bir hata bütün işlemlerin iptalini gerektiriyor bu durumda mysql isteneni vermiyor malesef, o yüzden tercihim firebird den daha hızlı olan mssql olacak. İlgine teşekkür ederim. Daha önce bahsi geçen konu burda seninde katkıların olmuştu.viewtopic.php?f=18&t=25489
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
- hi_selamlar
- Üye
- Mesajlar: 523
- Kayıt: 05 May 2005 03:24
- Konum: DelphiTürkiye.COM
Re: mysql ve innodb
S.A. Değerli arkadaşımBattosai yazdı:Daha kestirme cevap vereyim MySQL kullancaksan MyISAM kullanİkisini karıştırmanı tavsiye etmem. Transaction,Foregein key..vb kullanacaksan Firebird'e yönel...
Acaba neden MySQL de (InnoDB) Transaction vs. kullanımını tercih etmediğinide belirtirmisin lütfen

Bir sıkıntımı yaşadın veya başka türlü bir sorun mu ?
S.A.
Herkes cahildir, bazi konularda.