DBAtlas · Veritabanı operasyon atlası

Bellek-içi tablo / hızlandırma

Oracle

-- Database In-Memory ile tabloyu bellekte tut:
ALTER TABLE siparis INMEMORY;
-- Bellek boyutu (init parametresi):
ALTER SYSTEM SET inmemory_size = 4G SCOPE=SPFILE;

Oracle Database In-Memory sık sorgulanan tabloları bellekte sütunsal biçimde tutarak analitiği hızlandırır (ayrı lisans). OLTP için ayrıca Buffer Cache ve KEEP pool sık erişilen bloğu bellekte tutar. Bellek-içi çözüm kalıcılığı diskteki satır biçimiyle korur.

PostgreSQL

-- Kalıcılığı olmayan hızlı tablo (WAL yazmaz):
CREATE UNLOGGED TABLE gecici_hesap (id int, veri text);
-- Oturuma özel geçici tablo (bellekte tutulmaya yatkın):
CREATE TEMP TABLE oturum_veri (id int) ON COMMIT DELETE ROWS;

PostgreSQL adanmış bellek-içi tablo motoru sunmaz; UNLOGGED tablo WAL yazmayı atlayarak yazmayı hızlandırır (çökmede içerik kaybolur, kalıcı değildir). TEMP tablolar oturum ömürlüdür ve temp_buffers ile bellekte tutulmaya çalışılır. Sıcak veri shared_buffers'ta önbelleklenir.

MySQL

-- MEMORY (HEAP) depolama motoruyla tablo:
CREATE TABLE onbellek (
  id INT PRIMARY KEY,
  veri VARCHAR(100)
) ENGINE=MEMORY;

MySQL MEMORY (eski adıyla HEAP) depolama motoru tablo verisini tamamen RAM'de tutar; çok hızlıdır ancak sunucu yeniden başlayınca veri kaybolur (yapı kalır). BLOB/TEXT desteklemez ve sabit satır boyutu kullanır. Kalıcı sıcak veri için InnoDB buffer pool tercih edilir.

SQL Server

-- In-Memory OLTP: bellek-optimize tablo
CREATE TABLE dbo.oturum (
  id INT NOT NULL PRIMARY KEY NONCLUSTERED,
  veri NVARCHAR(100)
) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);

SQL Server In-Memory OLTP (Hekaton) bellek-optimize tablolar (MEMORY_OPTIMIZED=ON) ve kilitsiz (latch-free) yapılarla yüksek eşzamanlı OLTP sağlar. DURABILITY=SCHEMA_AND_DATA veriyi kalıcı, SCHEMA_ONLY yalnız şemayı korur. Bellek-optimize dosya grubu gerektirir.

MongoDB

-- Sıcak veri WiredTiger önbelleğinde otomatik tutulur.
-- Önbellek boyutunu ayarla (varsayılan RAM'in ~%50'si):
// mongod --wiredTigerCacheSizeGB 8
// veya yapılandırma: storage.wiredTiger.engineConfig.cacheSizeGB

MongoDB'nin ayrı bir bellek-içi tablo tipi yoktur (eski In-Memory Storage Engine yalnız Enterprise'daydı ve kullanımdan kalktı). Varsayılan WiredTiger motoru sık erişilen veriyi ve index'leri bellek önbelleğinde (cache) tutarak okuma hızını artırır; işletim sistemi dosya önbelleği de katkı sağlar.

Redis

# Redis zaten tümüyle bellek-içi çalışır; ek işlem gerekmez.
# Kalıcılık ve bellek politikası ayarları:
CONFIG SET maxmemory 4gb
CONFIG SET maxmemory-policy allkeys-lru

Redis veriyi tümüyle RAM'de tutar; bu tasarımı gereği yüksek hızının kaynağıdır. Kalıcılık RDB (snapshot) ve/veya AOF (komut log'u) ile sağlanır. maxmemory sınırı ve eviction politikası (LRU/LFU/random) bellek dolduğunda davranışı belirler.

Elasticsearch

-- Uygulanamaz: tümüyle bellek-içi tablo modu yoktur.
# Sıcak/soğuk mimari ile sıcak veriyi hızlı düğümlere yerleştir:
PUT satis/_settings
{ "index.routing.allocation.require.data": "hot" }

Elasticsearch veriyi disk üzerinde (Lucene segmentleri) saklar; adanmış bellek-içi tablo motoru sunmaz. Hız için işletim sistemi dosya önbelleği (page cache), doc_values ve sıcak/ılık/soğuk (hot-warm-cold) mimarisi kullanılır. Yeterli RAM ve heap ayarı performans için kritiktir.

DBAtlas'ta aç →