Konular

Mysql Tablo Türleri

MyISAM, InnoDB...

 

Mysql Tablo TürleriMysql Tablo Türleri

MySQL Tablo Tipleri
MySQL, iki farklı tür tablo yapısını destekler :

Transaction Tabloları :
- InnoDB
- Berkeley DB

Atomik İşlem Tabloları :
- MyISAM
- HEAP
- MERGE
- ISAM

MySQL her iki tür işlemi de desteklediği için kullanıcı,uygulamasında atomik işlemlerin hızına mı transaction özelliklerine miihtiyacı olduğuna karar verebilir. Seçimler tablo bazında yapılabilir.

Transaction'lı tablo ile atomik işlemle çalışan tablo arasındaki enbüyük fark performans konusunda oluşur. Transactionlı tablolarçalışırken daha fazla bellek, daha fazla disk alanı ve daha fazlaişlemci gücü harcar.

Eğer uygulamalarınız kritik durumlarda COMMIT yapmaya değil de,ROLLBACK yapmaya göre yazıldıysa transaction kullanmak daha elverişliolabilir.

Çoğunlukla kritik transactionla çalışan güncellemeler, atomikolarak çalışacak şekilde tekrar yazılabilir. Transactionların çözdüğütüm bütünlük problemleri LOCK TABLES, INSERT DELAYED ve benzeriyöntemlerle çözülebilir.

Tablo tipleri, her tablo için farklı seçilebilir. Bir veritabanındaiki ya da daha fazla tablo tipini bir arada kullanabilirsiniz.

MyISAM

Ç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.

MyISAM, MySQL'in "klasik" tablo tipidir. Çok hızlı, az kaynak harcayan ve verimli çalışmak için tasarlanmıştır.

InnoDB

InnoDB MyISAM a göre oldukça yavaştır.

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.

innodb ve bdb (berkeley database) tipi veritabanlarında transaction (satır üzerinde çalışan) veritabanı tipleridir.

Kayıt girilirken MyISAM gibi bütün tabloyu kitlemezler. Bu tip veritabanları özel transaction fonksiyonlarınıda (basit olarak locking, begin ve commit olayları, bknz. sql kitapçığınıza) çalıştırmanızı sağlar.

MyISAMdan yavaş olduğunu söylensede çok giriş yapılan tablolarda MyISAM kullanmanın hızı düşürdüğü de bir gerçektir ve yadsınamaz.

%100 ACID uyumlu, commit, rollback ve göçmeden kurtarma özelliklerine sahip bir tablo yapısını size sağlar.

Satır seviyesinde kilitleme kullanır, Oracle-stili kilitleme olmaksızın SELECT işlemleri yapılmasını destekler.

Yabancı anahtar kısıtlamalarına uyar.

Veri ve indeksleri ana bellekte cache'lemek için kendi tampon havuzu vardır.

Tabloları ve indeksleri tablo alanı olarak tanımladığı sanal ciltte tutar.

Bir tablo alanı birçok dosya ya da disk bölümünden oluşabilir.

InnoDB, MySQL'in standart transaction destekli tablo tipidir.

 

MyISAM ve InnoDB Karşılaştırması

  1. InnoDB, sistem göçmelerinde kayıt dosyalarını yeniden okuyup veritabanını eski durumuna döndürebilmektedir. MyISAM ise bu işlemi gerçekleştirebilmek için değiştirilmiş tüm tabloları baştan sona taramalıdır. InnoDB'nin veri dosyalarının boyutuna bağlı olmaksızın çalışabilmesi onun büyük veritabanlarında yeğlenmesini zorunlu kılmaktadır.
  2. MyISAM, satır okuma ve yazma işlemlerini önbelleğe almak için işletim sistemine gerek duyarken InnoDB bu işlevi doğrudan motor bünyesinde görmektedir. InnoDB, kirli (değiştirilmiş) veritabanı sayfalarını işletim sistemine hemen göndermemekte, bu durum zaman zaman hızlandırıcı bir etken olmaktadır.
  3. InnoDB, satırları ana anahtara göre sıralamakta, MyISAM ise bu satırları girildikleri sırada saklamaktadır. Satırların ana anahtara göre sıralanması MS SQL Server'ın "kümelenmiş indeksler" özelliğine ve Oracle'ın "indekse dayalı tablolar" tanımı ile uyumludur. Bu olgu, ana anahtarın ortak sorgularda sıkça geçtiği durumlarda kaydadeğer hız artışı sağlamaktadır. Örneğin, bir müşterinin banka kayıtları InnoDB'de müşteriye göre öbeklendirilirken MyISAM, son işlem zamanını kullanacaktır. Bu durumda, bir müşterinin banka hesabı geçmişini elde etmek InnoDB'nin daha az zamanını alır. Ne var ki, ana anahtarı kullanmayan ekleme sorguları InnoDB'nin veriyi birçok kez yeniden düzenlemesine neden olacak, bu da başarımı olumsuz etkileyecektir.
  4. InnoDB, sıkıştırma ve kısa satır biçimlerini desteklememektedir. Bu, kullanılan RAM miktarının artmasına yol açabilir.
  5. Tümüyle ACID uyumlu kiplerde çalıştırıldığında InnoDB, sabit diske birkaç aktarımda bir yazmalıdır. Bu, sabit diskin saniyede 200 güncelleme aktarımı kısıtlamasına takılmaktadır. Daha yüksek aktarım hızlarına gerek duyulan durumlarda önbellekli ve yedek pilli sabit disk denetleyicileri kullanılmalıdır. InnoDB, bu etkinin sorun yaratmayacağı kiplerde de çalıştırılabilmektedir. MyISAM'ın aktarım desteğinden yoksun olması bu tür bir sorunla karşılaşmasını engeller.

Kaynak

 

 

 

 

Yorumunuzu Ekleyin

Mysql Türkçe Karakter Problemi

Php+Mysql Tabanlı Site Tasarımları hazırlayan yeni arkadaşların en büyük problemleridir, Mysql 4 üzerindeki karakter problemleri. Bu sadece Mysql 4 üzerinde oluşan bir durum. Yani Mysql 4'ler üstünde karakter kodlama seçenekleri söz konusu. Ayrıca türkçe karakter içeren sıralamalardada sorunlar çıkmaktadır.

53,795 Okunma 2 Yorum 14/04/2007 14:32:06 09/12/2014 14:32:21

Mysql Veri Tipleri

Mysqlde kullanılabilecek veri tipleri, anlamları ve alabilecekleri değerler

34,757 Okunma 2 Yorum 10/03/2008 20:27:44

MySQL ve Triggerlar

MySQL 5. 0 alpha'ya kadar trigger desteği bulunmayan bir veritabanı yönetim sistemi olduğundan çoğu kez bu nedenle çocukça bir uğraş olarak görülmüştür - abartmıyorum. Yeni sürümlerine entegre edilen trigger desteği sayesinde MySQL severler oldukça büyük bir huzura kavuşmuştur

23,217 Okunma Henüz yorum yapılmamış 19/10/2007 14:56:59

Mysql field tipleri

22,440 Okunma Henüz yorum yapılmamış 03/03/2008 10:46:06 11/01/2019 21:01:16

Mysql İle Türkçe Karakter Sıralaması

Yeni sürüm mysql veritabanlarında karakter kodları var bildiğiniz üzere. Çoğu kişi için sıkıntı olduğu düşünülse de, aslında tam tersi karakter kodları sayesinde veritabanımız daha hızlı çalışıyor ve gördüğünüz bu tarzda sıralama işlemlerini başarıyla yapabiliyoruz.

21,596 Okunma Henüz yorum yapılmamış 04/09/2008 18:22:12

Kalıcı Bağlantılı Veritabanı Bağlantıları (Persitent Connections)

Kalıcı bağlantılar betiğinizin çalışması bittiğinde kapanmayan bağlantılardır. Bir kalıcı bağlantı istendiğinde PHP evvelce açılmış eşdeğer bir kalıcı bağlantı var mı diye bakar ve varsa onu kullanır. Yoksa yeni bir bağlantı oluşturur. Bir 'eşdeğer' bağlantı, aynı konağa (uygulanabildiği takdirde) aynı kullanıcı adı ve parola kullanılarak açılmış bağlantıdır.

12,037 Okunma Henüz yorum yapılmamış 08/12/2014 11:11:14 08/12/2014 11:33:49

Yükleniyor...