FireBird & MySQL Hangisini Kullanalım !

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: FireBird & MySQL Hangisini Kullanalım !

Mesaj gönderen hi_selamlar »

vkamadan yazdı:Merhaba ,
MyISAM ile InnoDB arasında ki hız farkı daha çok Batch Insert işlemlerinde ortya çıkıyor, çok değil bir kaç hafta önce FALCON , InnoDB ve MyISAM ın INSERT hızlarını karşılaştrmak için küçük bir test yapmıştım , 4 alanlı bir tabloya 10.000 kayıt ekletmiştim , InnoDB 7sn de, MyISAM 1.02sn de eklemişti bariz bir hız farkı olduğu ortada , fakat uygulamanızda buna benzer binlerce kaydı bir seferde INSERT etme gibi ihtiyaçlarınız çok sık olmayacaksa, bir kaç kayıdın INSERT ü sırasında ki hız farkını anlamak pekte mümkün olmayacaktır, diğer bir yandan select performansı doğru indexler kullanıldığında MyISAM ile InnoDB arasında pekte farklı sürelerde gelmiyor.
Ben MySQL e bağlanmak için ücretli bir bileşen seti olan MyDAC ' ı tercih ettim memnunum , ücretsiz olan zeos u hiç denemedim ama sıkça kullanıldığını biliyorum. ücretsiz ODBC sürücülerini de temin edebilir BDE üzerinden de bağlanabilirsiniz ama bunu önermiyorum hem biraz performans kaybı yaşanır hemde dağıtılabilirliği biraz zahmetli olacaktır.
MySQL , bağlantı seviyesinde transactionları destekler, bu yüzden işleme başlamadan önce bağlantı nesnesinin transaction başlatma metodunu ( örn : myConnection.StartTransaction gibi...) başlatımanız , ve işlem sonunda aynen Commit yada Rollback uygulamanız yeterlidir.
İyi çalışmalar.
S.A.

hocam ilgi ve bilgi paylaşımlarınız için çok teşekkür ederim.

"İYİKİ HEPİNİZ VARSINIZ..." :bravo:

S.A.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: FireBird & MySQL Hangisini Kullanalım !

Mesaj gönderen Battosai »

Bağlanmak için Zeos kullanabilirsin ben uzun süredir kullanıyorum daha bi yamuğunu görmedim:) Ücretsiz olması da cabası....
Kullanıcı avatarı
GOLAKS
Üye
Mesajlar: 22
Kayıt: 06 Nis 2006 09:47
Konum: İSTANBUL
İletişim:

Re: FireBird & MySQL Hangisini Kullanalım !

Mesaj gönderen GOLAKS »

1. Firebird'de event ler ne yazıkki MySQL de yok.
2. Stored Procedure içinde procedure sonlandırma veri geri gonderme gibi işlemler biraz daha zahmetli.
3. Eger Firebird 2.0+ kullanıyorsanız Recursive SQL gibi fazladan ozellikler ne yazıkki MySQL de yok
4. Firebirdde SP den aldıgınız yanıtı bir table gibi kullanabilirsiniz, ancak MySQL de ne yazıkki bu mumkun olmuyor. (yani select * from my_stored_procedure(pr1, pr2) yazabilirsiniz, MySQL de bu işlemin karşılıgı birebir yok ne yazıkki, yada ben bilmiyor olabilirim)
5. Firebird tum veriyi sadece bir dosya içinde tutarken, MySQL sadece datayı bir dosyada, kalanını ayrı dosyalarda tutuyor. Sanırım performans ile ilgili bu işlem avantaj sunuyor.

Tum bunlarla birlikte

MySQL veri yapılarına cok hızlı erişiyor. Query ler (ozellikle içinde IN komutu gecenler) Mysql de cok hızlı yanıt veriyor.

Mimari olarak kendi uygulamalarımda şoyle yapıyorum.

Ana makine olarak linux Fedora kuruyor ve modemin ilgili portlarını bu makineye yonlendirdikten sonra internette bu makineyi herhangi bir yere koyuyorum. Bu yontemde kesinlikle local baglantıdan cok daha iyi bir performans alıyorum MySQL de. Firebird için ise ne yazıkki aynı şeyi soyleyemem. Fakat localde gercekten Firebird cok iyi. Query & SP lere takla attırmakta oldukça başarılı.


Firebird de, Delphi 7 InterbaseExpress (delphi 7 ile gelen) ve EMS (for firebird) kullanıyorum
MYSQL de, Delphi 7- MyDAC -EMS kullanıyorum. (MyDAC ve EMS ucretli ancak verdiginiz paranın fazlasını kesinlikle hakediyorlar)

Lisans modelini de ihmal etmeyin, Firebird ister GPL ister ticari kullanının bedava ama MySQL sadece GPL (yani sizde kodunuzu bedava veririseniz ucretsiz) aksi halde lisans ihlali yaparsınız. Lutfen bunu goz onunde bulundurun.


Size tavsiyem MySQL olur, sebepleri ise şunlar


1. Zero configuration; kullanıcıda bir ayar yapmanız gerekmez sadece exe yi gonderin yeter,
2. Local yada web kodunuz iyi yapılandırılmışsa hız aşagı yukarı aynı olacaktır
3. Kablo uzerinden cok fazla bilgi taşımamaya ozen gosterin, bekli de bu secenek web uzerinden yapılan yazılımlar için hayati olanıdır.

Kolaylıklar
Golaks Yazılım
Bilgileriniz Kayda Değerse..!
www.golaks.com.tr
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: FireBird & MySQL Hangisini Kullanalım !

Mesaj gönderen hi_selamlar »

S.A.

Bütün arkdaşlarımıza teşekkür ediyorum. :bravo:

Yanlız bir sorunum var.???

MySQL Multiple Trigger desteği yok !

Örneğin A table var.
Ben bunun Before Update Trigger yazdım.
Daha sonra tekrar Before Update' ine Trigger yazmaya kalkıştığımda sadece 1 defa bu bölüme Trigger
tanımlayabileceğimi belirtiyor ve trigger oluşturmuyor.

Bu Nasıl Bir iş.

Ben bu işlemi nasıl aşarım. ?? :Noops

Sevgiler Saygılar.

S.A.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: FireBird & MySQL Hangisini Kullanalım !

Mesaj gönderen vkamadan »

Evet MySQL Multiple Trigger olayını desteklemez, tetiklenme anında oluşacak işlemleri tek tirgger içine amaçladığınız işlem sırasına uygun bir şekilde yazmaktan başka çözüm maalesef yok.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: FireBird & MySQL Hangisini Kullanalım !

Mesaj gönderen hi_selamlar »

vkamadan yazdı:Evet MySQL Multiple Trigger olayını desteklemez, tetiklenme anında oluşacak işlemleri tek tirgger içine amaçladığınız işlem sırasına uygun bir şekilde yazmaktan başka çözüm maalesef yok.
S.A.

Hocam siz nasıl bir yöntem izliyorsunuz.. ??

Peki diyelimki hepsini bir trigger içerisibe sıraladık. bu işlem sistemi yormaz mı? yavaşlama meydana gelmez mi?
Hocam peki her tetiklenmede orda yazdığımız bütün işlemler sırası ile kontrol edilecek. Bunun daha basit bir yöntemi yok mu?
Ben FireBird deki gibi bir sistem olduğunu düşünmüştüm açıkcası. :)
İşin içerisine girdikçe bakalım daha neler çıkacak.. ;)

Acaba başka ne gibi durumlarla karşılaşacağız ileride. Ne önerirsiniz bizlere ?


Bir sorum daha olacaktı ama !
FB de trigger da Before [insert, update, delete] aynı anda seçip işlemlerimizi gerçekleştirebiliyordum.
Şöyle ki;

Kod: Tümünü seç

if inserting then
begin

end
else
if editing then
begin

end
else
if deleting then
begin

end;
şeklinde. Bu sistemi MySQL destekliyor mu ?
Bu özellikler MySQL de varmı?
Sevgiler, Saygılar.

S.A.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: FireBird & MySQL Hangisini Kullanalım !

Mesaj gönderen vkamadan »

Sonuçta FB de de ; örneğin BEFORE INSERT olayına 3 tane trigger yazdığınızda bunların 3ü de sırayla çalıştırılıyor sıralamayı siz belirleyebiliyorsunuz, yani çalıştırma performansı açısından sıkıntı olacağını düşünmüyor her iki durumda da bütün kodlar çalışıyor çünkü, FB nin bu özelliği sayesinde daha derli toplu okunabilirliği daha kolay triggerlar yazabiliyoruz.
ikinci sorunuz içinde cevap maalesef bu şekilde bir yazımıda MySQL desteklemez yani bütün olaylar için çalışabilen ortak trigger desteğide MySQL de yoktur.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: FireBird & MySQL Hangisini Kullanalım !

Mesaj gönderen hi_selamlar »

S.A.

Teşekkür ederim ilginiz ve paylaşımlarınız için.

Sevgiler, Saygılar.

S.A.
Herkes cahildir, bazi konularda.
Eolgun
Üye
Mesajlar: 4
Kayıt: 16 Haz 2003 06:31

Re: FireBird & MySQL Hangisini Kullanalım !

Mesaj gönderen Eolgun »

Bu konu gerçekten tartışmaya açık ve bazen bende hangisi diye defaatle düşünüyorum.

FIREBIRD;
Sağlam bir database yapısı var. Kolay bozulmayan elektrik kesilmelerinden az etkilenen bir yapı sunuyor. Fakat database bozulduğu zaman veri kurtarmak çok güç. Çoğunlukla bütün bilgileri kaybediyorsunuz. Bu nedenle kesinlikle sık sık yedek alınmalı.

Datalar tek file'de tutulması yedekleme ve taşıma kolaylığı sağlıyor. FB Server Windows işletim sistemine kurulu ise (Windows Server olmayanlarda) data boyutu belli bir boyutun üzerine çıkınca bazı problemlerle karşılaşabilirsiniz.

Bağlantı için kullandığınız component performansı çok etkiliyor. Benim incelememde en iyi performansı CoreLab (yeni adı Devart : http://www.devart.com) firmasının IBDac componenti verdi. IBX fbserver yönetimi için ek bileşenler sunuyor. Fakat IBDac'a göre performansı çok düşük. (Karşılaştırma için link: http://www.devart.com/ibdac/performance.html). Hele BDE üzerinden bağlantı kesinlikle kullanılmamalı. Kendi testlerimde listede yer almayan ve ticari olarak kullanılan diğer componentlerde de de IBDac daha hızlıydı.

Firebird 1.5 ve üstü versiyonlarda veri MYSQL MyISAM tablolarına yakın performans gösteriyor. 1.5 altı versiyonlar yavaş çalışıyor.


MYSQL;
Bir veye birden fazla tablo tipi seçebilirsiniz. Aynı database içinde hem MyISAM hem de InnoDB kullanabilirsainiz. Tabloların her biri farklı dosyalarda tutulur.

MyISAM tablolarında veriler daha hızlı kaydedilir ve aranabilir. Fakat data bozulmaları daha sık yaşanır. Repair işlemlerinde veri kaybı olma ihtimali yüksektir. Fakat genellikle datanın çoğunu kurtarma imkanı vardır. MyISAM kullanımı ücretsizdir.

InnoDB daha güvenli bir data yapısı sunar. SP ve TR kullanabilirsiniz. Data bozulması daha az yaşanır. Fakat bozulmuş datada tablonun tamamı kaybedilebilir.

Yedekleme biraz sıkıntılı olabilir. Çünkü karşınızda birçok tablo dosyası ve diğer dosyalar bulunacaktır.

MyISAM daha hızlı ve InnoDB tabloları daha yavaştır.

InnoDB ticari kullanımı ücretlidir veya uygulamanız open source olmalıdır.

Bağlantı için kullandığınız veya kullanacağınız componente gelince; eski versiyonlarda zeos kullanılabilir. Fakat yeni versiyonlarda (MySQL 4.0 üstü) sıkıntı yaşayabilirsiniz. Burada yine yukarıda bahsettiğim firmanın MyDAC adlı componentini tavsiye edebilirim.
Eolgun
Üye
Mesajlar: 4
Kayıt: 16 Haz 2003 06:31

Re: FireBird & MySQL Hangisini Kullanalım !

Mesaj gönderen Eolgun »

MySQL ile ilgili birşey daha söylemek gerekiyor. ORACLE bu yıl nisan sonlarında SUN'ı satın aldı. Yani bundan sonra MySQL'de ORACLE'a ait. Ücretsiz ne kadar daha devam eder bilinmez. Yalnız versiyon 6'nın open source olacağı deklare edildi.
Cevapla