Arkadaşlar kolay gelsin bu arada aklıma gelmişken bişi sormak istiyorum. MYSQL veritabanında ilk olarak oluşturulan tablolar MylSAM olarak oluşturuluyor. Tablo tipinin programda daha stabil bir şekilde çalışması için bu şekilde mi kalması gerekiyor yoksa INNODB'ye mi geçmek gerekiyor. Eğer mümkünse bunların ne işe yaradığını ve hangi tablo yapısını kullanmam gerektiği ile ilgili bana bir bilgi verebilirseniz çok sevinirim.
Yardımlarınız için şimdiden çok tşk ediyorum.
MYSQL tablo yapıları ile ilgili bir çözüm arıyorum..
MYSQL tablo yapıları ile ilgili bir çözüm arıyorum..
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Merhaba,
MyISAM tabloları çok hızlıdır fakat özellikle windows sunucuda çalışıyorsa çok güvenli değildir bozulması kolaydır, tamir etmesi kolaydır fakat tamir edildiğinde kayıt kayıpları oluşur veri bütünlüğü açısından benim hiç bir zaman önermeyeceğim bir tablo yapısıdır.
InnoDB MyISAM a göre oldukça yavaştır fakat bozulması çok zordur, bozulduğunda tamir etmesi neredeyse imkansızdır fakat çok güvenlidir TRANSACTION destekler ve veri bütünlüğünü açısından MySQL de kullanılması kesinlikle şart tablo yapısı budur bence.
Kolay gelsin.
MyISAM tabloları çok hızlıdır fakat özellikle windows sunucuda çalışıyorsa çok güvenli değildir bozulması kolaydır, tamir etmesi kolaydır fakat tamir edildiğinde kayıt kayıpları oluşur veri bütünlüğü açısından benim hiç bir zaman önermeyeceğim bir tablo yapısıdır.
InnoDB MyISAM a göre oldukça yavaştır fakat bozulması çok zordur, bozulduğunda tamir etmesi neredeyse imkansızdır fakat çok güvenlidir TRANSACTION destekler ve veri bütünlüğünü açısından MySQL de kullanılması kesinlikle şart tablo yapısı budur bence.
Kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
MySQL 'de tablo türleri için birde lisans sorunu var. Bildiğim kadarıyla MyISAM ücretsiz. InnoDB içinse lisans istiyorlar.
MyISAM tablolarıyla 3 yıldır çalışan programın var. @vkamadan'ın dediğini gibi veriler kaydolurken elektrik felan giderse, o anki kayıt bozulabiliyor. diğer kayıtlarda şimdiye kadar hiç sorun çıkmadı. bozulan tabloyuda repair table komutu ile tamir etmek çok kolay. InnoDB kullanmadığım için tam olarak aradaki farkları bilmiyorum. Birde MaxDB çıktı, o da ücretsiz.
MyISAM tablolarıyla 3 yıldır çalışan programın var. @vkamadan'ın dediğini gibi veriler kaydolurken elektrik felan giderse, o anki kayıt bozulabiliyor. diğer kayıtlarda şimdiye kadar hiç sorun çıkmadı. bozulan tabloyuda repair table komutu ile tamir etmek çok kolay. InnoDB kullanmadığım için tam olarak aradaki farkları bilmiyorum. Birde MaxDB çıktı, o da ücretsiz.
Peki volkan hocam bişi daha sormak istiyorum, ayda ortalama 50-100 bin kayıt işlemi yapılan bir tabloda INNODB yapısı kullanılırsa programın verilere ulaşması istemcide yada sunucuda bariz bir yavaşlama oluştururmu?vkamadan yazdı: InnoDB MyISAM a göre oldukça yavaştır fakat bozulması çok zordur, bozulduğunda tamir etmesi neredeyse imkansızdır fakat çok güvenlidir TRANSACTION destekler ve veri bütünlüğünü açısından MySQL de kullanılması kesinlikle şart tablo yapısı budur bence.
Diğer bi sorumda bu TRANSACTION dediğiniz olay nedir? Ne işe yarar? ve Ne zamanlarda kullanılır hocam eğer değerli bilgilerinizle beni ve diğer ark. aydınlatabilriseniz çok memnun olurum.
Cevaplarınız için çok tşk ederim...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Merhaba,
Eğer index yapınızı doğru kurarsanız kayıt sayısının pekte önemi kalmaz mesela MyISAM da 3sn de dönen komplex bir sorgu InnoDB de 4sn de dönerse yani arada 1sn fark olursa doğru index yapısıyla bu oran hep sabit kalır, zaten bariz hız farklı olayı INSERT yaparken gündeme geliyor, testlerimde 1000 kayıdı MyISAM ile 5-6sn gibi bir sürede yaparken InnoDB de bu süre 50-60sn ye kadar uzayabiliyor, eğer çok fazla toplu kayıt işleminiz yoksa normal şartlarda bu süre farkı gözardı edilebilir.
Transaction ise forumda çok fazla konuşulmasına rağmen özetlemek gerekirse, "işlem grubu" anlamına geliyor, şöyle bir örnek vereyim öyle durumlar olurki bir işleminiz üç beş tabloya kayıt yazabiliyor, veri bütünlüğü açısından ya 5 tabloyada veri yazılmış olmalıdır yada hiçbirine yani arada oluşabilecek sorunlarda yapılan değişiklikler geri alınmalıdır, böyle bir yapı için transcationlar kullanılır örnek yapı şöyle olabilir,
Kolay gelsin.
Eğer index yapınızı doğru kurarsanız kayıt sayısının pekte önemi kalmaz mesela MyISAM da 3sn de dönen komplex bir sorgu InnoDB de 4sn de dönerse yani arada 1sn fark olursa doğru index yapısıyla bu oran hep sabit kalır, zaten bariz hız farklı olayı INSERT yaparken gündeme geliyor, testlerimde 1000 kayıdı MyISAM ile 5-6sn gibi bir sürede yaparken InnoDB de bu süre 50-60sn ye kadar uzayabiliyor, eğer çok fazla toplu kayıt işleminiz yoksa normal şartlarda bu süre farkı gözardı edilebilir.
Transaction ise forumda çok fazla konuşulmasına rağmen özetlemek gerekirse, "işlem grubu" anlamına geliyor, şöyle bir örnek vereyim öyle durumlar olurki bir işleminiz üç beş tabloya kayıt yazabiliyor, veri bütünlüğü açısından ya 5 tabloyada veri yazılmış olmalıdır yada hiçbirine yani arada oluşabilecek sorunlarda yapılan değişiklikler geri alınmalıdır, böyle bir yapı için transcationlar kullanılır örnek yapı şöyle olabilir,
Kod: Tümünü seç
try
Database.StartTransaction;
IlkTabloyaKayit;
IkınciTabloyaKayit;
.
.
.
Database.Commit;//buraya kadar gelinirse sorun yok demektir ve Değişiklikler Commit ile Database e kesin olarak yazılır.
except
Database.RollBack; // try except arasında bir istisna oluşursa except end arası kodlar yürütülür ve görüldüğü gibi başlatılmış transaction RollBack ile yapılan değişiklikler geri alınır.
end;
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr