Mysql MEMORY TABLE (HEAP TABLE)

Mysql MEMORY TABLE (HEAP TABLE),

Mermory tablo (Heap) da datalar hafıza da yani ram de tutulur. Buda bize
data erişiminde büyük bir hız sağlar. Fakat bilgiler ram de tutulduğu iÇin
mysql server’ın restart olması durumunda verileri kaybederiz. Bunun iÇin
memory table kullanırken bu duruma da göz önünde bulundarmanız gerekir.

Syntax:

CREATE TABLE personel
(id INT,
adi varchar(20),
soyadi varchar(20) ,
INDEX USING BTREE (id))
ENGINE = MEMORY;

Yukarıdaki kodu Çalıştırdığımız da id,adı ve soyadi kolonlarına sahip indexleme metedolojisi
olarak BTREE yapısını kullanan ve engine’i MEMORY olan personel tablomuzu oluşturmuş olduk.

şimdi bu tablo üzerinde normal tabloymuş gibi bütün işlemleri yapabilirsiniz.
İnsert ,update,delete ,indexleme vs.Ama unutmayınki datalarınız ram de duruyor yani
herhangi bir restart durumunda bilgileriniz silinecektir.

Indexleme metedolojisi olarak HASH ve BTREE yapılarını kullanır.Ama size tavsiyem
performans aÇısında BTREE yapısını kullanmanızdır.

Bellekte oluşan en büyük tabloların boyutu max_heap_table_size sistem değişkenin
default boyutu olan 16 mb ile sınırlıdır. Bu değeri arttırabilirsiniz.

tmp_table_size ve max_heap_table_size değişkenlerinin değerlerini tablonun boyutuna göre ve
tablonun ileride alacağı boyutu göz önünde bulundurarak iyi belirlemek gerekir.Bir nevi bu değişkenlere verdiğimiz değerle MEMORY tabloya üst sınır koymuş oluyoruz.

Diğer makaleler de görüşmek dileğiyle,

Tayfur BÖLER
Database Administrator

Bugun Okunma Sayısı:1, Toplam Okunma Sayısı:1897

2 Cevap “Mysql MEMORY TABLE (HEAP TABLE)”

  1. Vote -1 Vote +1Gökhan
    diyor ki:

    Bu özellik en çok nerelerde kullanılıyor? Mesela Facebook’un üyelerle ilgili birçok bilgiyi boyutu 5 tb’a varan ram’lerde tuttuğu söyleniyor. Bu özelliği kullanırken yedeğini alarak (trigger) mı kullanmak gerekir? Bir bilen açıklayabilir mi?

    Teşekkürler.

  2. Vote -1 Vote +1admin
    diyor ki:

    Memory table özelliğini serverının ram boyutuna göre belli büyüklükteki tabloları genelde select işlemleri yapılan insert işlemlerinin fazla olmadığı tablolar için kullanabilirsin. Ama dikkat etmem gereken birşey var mysql server restart oldugu zaman bu tablonun içi boşalır.

Yorum Ekle