lostyazilim

MySQL ilişkisel veri tabanı yapmak için InnoDB mi kullanmak gerekir?

7 Mesajlar 3.179 Okunma
lstbozum
wmaraci reklam

monelogg monelogg <> Kullanıcı
  • Üyelik 06.03.2014
  • Yaş/Cinsiyet 33 / E
  • Meslek Öğrenci
  • Konum Diğer
  • Ad Soyad M** B**
  • Mesajlar 658
  • Beğeniler 78 / 125
  • Ticaret 0, (%0)
Merhaba, MySQL ile ilişkisel veri tabanı yapmak için uğraşıyorum, bunu InnoDB ile başarabildim fakat MyISAM ile yapamadım, yazdığım hiç bir sorgu çalışmadı.
Biraz araştırdım fakat pek bir şey anlamadım açıkçası, MyISAM kullanılarak ilişkili tablolar yapılabilir mi?
 

 

wmaraci
reklam

travijuu travijuu WM Aracı Kullanıcı
  • Üyelik 13.08.2013
  • Yaş/Cinsiyet 34 / E
  • Meslek DBA
  • Konum İstanbul Avrupa
  • Ad Soyad ** **
  • Mesajlar 7
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
MyISAM ve InnoDB veri depolama yönetimidir yani ilişkisel olup olmamasıyla alakası yoktur. Bir yerde yanlışın var MyISAM konusunda.
 

 

monelogg monelogg <> Kullanıcı
  • Üyelik 06.03.2014
  • Yaş/Cinsiyet 33 / E
  • Meslek Öğrenci
  • Konum Diğer
  • Ad Soyad M** B**
  • Mesajlar 658
  • Beğeniler 78 / 125
  • Ticaret 0, (%0)

travijuu adlı üyeden alıntı

MyISAM ve InnoDB veri depolama yönetimidir yani ilişkisel olup olmamasıyla alakası yoktur. Bir yerde yanlışın var MyISAM konusunda.


Hocam teşekkürler, cevabınız üzerine aynı sorguları MyISAM ile de denedim çalıştı, sıkıntı sorgudaymış, MySQL ortamına alışmaya çalışıyorum da kafam çok karıştı. Biraz araştırdım InnoDB'ye göre yapılmış komutlar görünce o kafamı karıştırdı.
 

 

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
MyISAM ve InnoDB db engine'i değilmiydi :confused:

En büyük farklarıda MyISAM engine üzerinde bir tabloya sorgu attığınızda varolan session tablodan veri gelene kadar tabloyu lock(kitler), diğer bir session üzerinden tabloya sorgu attığınızda ilk session 'ın işi bitene kadar bekletir. İşi bittikten sonra ikinci session'ın o tablo üzerindeki sorgusunu çalıştırmaya izin verir. Foreign key gibi kısıtlamaları yoktur. DB dizaynı gibi sıkıntı yoktur.

InnoDB size dml (select,update, delete) gibi transactional işlemleri birden fazla session ile bir tablo üzerinde gerçekleştirme kolaylığını sağlar. InnoDb tabloyu değil sadece tablo üzerinde işlem yaptığınız satırı kitler.


Bunun gibi kendilerine göre avantaj ve dezavantajları mevcuttur. Aklıma ilk gelenler bunlar.
 

 

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)
wmaraci
wmaraci

monelogg monelogg <> Kullanıcı
  • Üyelik 06.03.2014
  • Yaş/Cinsiyet 33 / E
  • Meslek Öğrenci
  • Konum Diğer
  • Ad Soyad M** B**
  • Mesajlar 658
  • Beğeniler 78 / 125
  • Ticaret 0, (%0)

Turgay Can adlı üyeden alıntı

MyISAM ve InnoDB db engine'i değilmiydi :confused:

En büyük farklarıda MyISAM engine üzerinde bir tabloya sorgu attığınızda varolan session tablodan veri gelene kadar tabloyu lock(kitler), diğer bir session üzerinden tabloya sorgu attığınızda ilk session 'ın işi bitene kadar bekletir. İşi bittikten sonra ikinci session'ın o tablo üzerindeki sorgusunu çalıştırmaya izin verir. Foreign key gibi kısıtlamaları yoktur. DB dizaynı gibi sıkıntı yoktur.

InnoDB size dml (select,update, delete) gibi transactional işlemleri birden fazla session ile bir tablo üzerinde gerçekleştirme kolaylığını sağlar. InnoDb tabloyu değil sadece tablo üzerinde işlem yaptığınız satırı kitler.


Bunun gibi kendilerine göre avantaj ve dezavantajları mevcuttur. Aklıma ilk gelenler bunlar.


Hocam cevabınız için teşekkür ederim.

http://stackoverflow.com/questions/260441/how-to-create-relationships-in-mysql
Yukarıdaki konudan dolayı kafam karıştı. MyISAM foreign key desteklemiyor filan yazmış, ben de ona göre bir şeyler yapmaya çalışınca böyle bir soru çıktı. MS-SQL'i silmek zorunda kaldım yerine MySQL kullanayım dedim ama ona da daha alışamadım, MS-SQL çok daha düzenliymiş.
 

 

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
MySQL InnoDB'yi kullanabilirsin. İlişkisel tablolar dizayn etmek istiyorsan. MySQL'in avantajı yapacağınız işe göre dolu engine'leri mevcuttur.

Diğer bir alternatif olarak PostgreSQL 'i önerebilirim. Kendi uygulamalarımda PostgreSQL hep kullanırım.

MsSQL(SQL Server)'ın sıkıntısı, paralı olması ve bedava versiyonlarında veri depolama limitleri vardır. Hatırladığım kadarıyla SQL Server 2008'de 4GB'a kadar veri depolamaya izin veriyordu, sonraki versiyonlarında 10 yada 12 GB'a kadar izin verir. Eş zamanlı 8 yada 10 bağlantıya izin verir gibi limitasyonları vardır.

MySQL'de bu mantıksal olarak sınırsızdır ama pratikte limiti vardır tablespace'e göre fakat milyonlarca veri depolamanıza izin verir.

Tavsiyem MySQL InnoDB yada PostgreSQL'dir. Bedava ve açık kaynak her daim daha iyidir.
 

 

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

monelogg monelogg <> Kullanıcı
  • Üyelik 06.03.2014
  • Yaş/Cinsiyet 33 / E
  • Meslek Öğrenci
  • Konum Diğer
  • Ad Soyad M** B**
  • Mesajlar 658
  • Beğeniler 78 / 125
  • Ticaret 0, (%0)

Turgay Can adlı üyeden alıntı

MySQL InnoDB'yi kullanabilirsin. İlişkisel tablolar dizayn etmek istiyorsan. MySQL'in avantajı yapacağınız işe göre dolu engine'leri mevcuttur.

Diğer bir alternatif olarak PostgreSQL 'i önerebilirim. Kendi uygulamalarımda PostgreSQL hep kullanırım.

MsSQL(SQL Server)'ın sıkıntısı, paralı olması ve bedava versiyonlarında veri depolama limitleri vardır. Hatırladığım kadarıyla SQL Server 2008'de 4GB'a kadar veri depolamaya izin veriyordu, sonraki versiyonlarında 10 yada 12 GB'a kadar izin verir. Eş zamanlı 8 yada 10 bağlantıya izin verir gibi limitasyonları vardır.

MySQL'de bu mantıksal olarak sınırsızdır ama pratikte limiti vardır tablespace'e göre fakat milyonlarca veri depolamanıza izin verir.

Tavsiyem MySQL InnoDB yada PostgreSQL'dir. Bedava ve açık kaynak her daim daha iyidir.


Bilgiler için teşekkür ederim, ben de dediğiniz gibi bedava ve açık kaynak kodun daha iyi olduğunu düşünüyorum, bu yüzden PHP ve MySQL ile bir başlangıç yaptım. PostgreSQL ile ilgili kaynak bulmam MS-SQL ve MySQL'e göre daha zor olur. Bu yüzden PostgreSQL'i bunları öğrendikten sonra bakmam daha iyi olur diye düşünüyorum.
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al