🗄️ Veritabanı Yönetimi ve Optimizasyon Rehberi

Hazırlayan: [kazakherif]

Tarih: 2026-10-15

Amaç: İlişkisel ve NoSQL veritabanı sistemlerinin yönetimi, performans optimizasyonu, yedekleme stratejileri ve sorun giderme adımları.

1. Veritabanı (Database) Nedir?

Açıklama:

Verilerin elektronik ortamda düzenli bir şekilde depolanmasını, yönetilmesini ve hızlıca erişilmesini sağlayan sistemlerdir.

2. RDBMS (İlişkisel Veritabanı)

Açıklama:

Verileri tablolar halinde (satır ve sütunlar) tutan ve tablolar arasında mantıksal ilişkiler kuran sistemlerdir (MySQL, PostgreSQL, Oracle).

3. NoSQL (İlişkisel Olmayan Veritabanı)

Açıklama:

Esnek veri modelleri kullanan, doküman (MongoDB), anahtar-değer (Redis) veya grafik tabanlı çalışabilen yüksek performanslı veritabanlarıdır.

4. ACID Prensipleri

Açıklama:

İlişkisel veritabanlarında veri bütünlüğünü garanti eden 4 temel özelliktir: Atomicity (Bölünemezlik), Consistency (Tutarlılık), Isolation (İzolasyon), Durability (Kalıcılık).

5. Index (Dizin) Nedir?

Açıklama:

Kitaplardaki içindekiler bölümü gibi çalışarak, veritabanında aranan kaydın tüm tabloyu taramadan (Table Scan) çok hızlı bulunmasını sağlayan veri yapısıdır.

6. Primary Key (Birincil Anahtar)

Açıklama:

Bir tablodaki her bir kaydı benzersiz (unique) olarak tanımlayan sütundur. (Örn: TC Kimlik No, Kullanıcı ID).

7. Foreign Key (Yabancı Anahtar)

Açıklama:

İki tablo arasında ilişki kurmak için kullanılan ve başka bir tablonun Primary Key'ine referans veren sütundur.

8. Normalizasyon

Açıklama:

Veri tekrarını (redundancy) önlemek ve veri bütünlüğünü artırmak için veritabanı tablolarının belirli kurallara (1NF, 2NF, 3NF) göre tasarlanması işlemidir.

9. View (Sanal Tablo)

Açıklama:

Karmaşık SQL sorgularının sonucunu, sanki fiziksel bir tabloymuş gibi saklayan ve çağırmayı kolaylaştıran sanal tablolardır.

10. Stored Procedure (Saklı Yordam)

Açıklama:

Veritabanı sunucusunda derlenip saklanan ve dışarıdan parametre alarak karmaşık işlemleri (iş mantığını) hızlıca gerçekleştiren SQL kod bloklarıdır.

11. MySQL: Servis Durumunu Kontrol Etme

Açıklama:

Linux sistemlerde MySQL/MariaDB servisinin çalışıp çalışmadığını kontrol eder.

Komutlar:

sudo systemctl status mysql

12. MySQL: Komut Satırından Bağlanma

Açıklama:

MySQL sunucusuna terminal üzerinden root kullanıcısı ile bağlanmayı sağlar.

Komutlar:

mysql -u root -p

13. MySQL: Tüm Veritabanlarını Listeleme

Açıklama:

Sunucu üzerindeki mevcut tüm veritabanı isimlerini gösterir.

Komutlar:

SHOW DATABASES;

14. MySQL: Veritabanı Seçme ve Tabloları Görme

Açıklama:

İşlem yapılacak veritabanını seçer ve içindeki tabloları listeler.

Komutlar:

USE sirket_db;
SHOW TABLES;

15. MySQL: Yeni Veritabanı Oluşturma

Açıklama:

Türkçe karakter desteği (utf8mb4) ile düzgün bir şekilde yeni veritabanı yaratır.

Komutlar:

CREATE DATABASE sirket_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

16. MySQL: Kullanıcı Oluşturma

Açıklama:

Sadece belirli bir IP'den veya localhost'tan bağlanabilecek yeni bir kullanıcı hesabı açar.

Komutlar:

CREATE USER 'yeni_kullanici'@'localhost' IDENTIFIED BY 'GucluSifre123!';

17. MySQL: Kullanıcıya Yetki Verme

Açıklama:

Oluşturulan kullanıcıya belirli bir veritabanı üzerinde tam yetki (ALL PRIVILEGES) atar.

Komutlar:

GRANT ALL PRIVILEGES ON sirket_db.* TO 'yeni_kullanici'@'localhost';
FLUSH PRIVILEGES;

18. MySQL: Tablo Yapısını İnceleme

Açıklama:

Bir tablodaki sütunları, veri tiplerini ve index durumlarını listeler.

Komutlar:

DESCRIBE kullanicilar;

19. MySQL: Aktif Sorguları (Processlist) Görme

Açıklama:

O an veritabanını yoran, kilitlenen veya uzun süren sorguları ve PID'lerini gösterir.

Komutlar:

SHOW FULL PROCESSLIST;

20. MySQL: Kilitlenen Sorguyu (Kill) Sonlandırma

Açıklama:

Processlist'ten alınan ID numarası ile sistemi yoran bir sorguyu zorla iptal eder.

Komutlar:

KILL 12345;

21. PostgreSQL: Servis Durumunu Kontrol Etme

Açıklama:

PostgreSQL veritabanı servisinin çalışma durumunu Linux üzerinde sorgular.

Komutlar:

sudo systemctl status postgresql

22. PostgreSQL: psql ile Bağlanma

Açıklama:

Varsayılan postgres kullanıcısı ile komut satırı arayüzüne giriş yapar.

Komutlar:

sudo -u postgres psql

23. PostgreSQL: Veritabanlarını ve Tabloları Listeleme

Açıklama:

psql arayüzünde veritabanlarını listelemek (\l) ve tabloları görmek (\dt) için kullanılan kısayollardır.

Komutlar:

\l
\c veritabani_adi
\dt

24. PostgreSQL: Kullanıcı (Role) ve Veritabanı Oluşturma

Açıklama:

Terminal arayüzünden hızlıca kullanıcı (rol) ve ona ait bir veritabanı oluşturur.

Komutlar:

CREATE ROLE ahmet WITH LOGIN PASSWORD 'sifre123';
CREATE DATABASE proje_db OWNER ahmet;

25. PostgreSQL: Aktif Bağlantıları Görme

Açıklama:

Sisteme bağlı kullanıcıları, sorgu sürelerini ve durumlarını (active/idle) görüntüler.

Komutlar:

SELECT pid, usename, state, query FROM pg_stat_activity;

26. Veritabanı İçe Aktarma (MySQL Restore)

Açıklama:

Mevcut bir .sql yedek dosyasını MySQL veritabanına geri yükler.

Komutlar:

mysql -u root -p sirket_db < yedek.sql

27. Veritabanı Dışa Aktarma (MySQL Dump)

Açıklama:

MySQL veritabanının tam yapısını ve verilerini bir dosyaya yedekler.

Komutlar:

mysqldump -u root -p sirket_db > yedek.sql

28. PostgreSQL Dışa Aktarma (pg_dump)

Açıklama:

PostgreSQL veritabanını sıkıştırılmış (custom format) olarak yedekler.

Komutlar:

pg_dump -U postgres -Fc proje_db > proje_yedek.dump

29. PostgreSQL İçe Aktarma (pg_restore)

Açıklama:

Custom formatta alınmış PostgreSQL yedeğini sunucuya geri yükler.

Komutlar:

pg_restore -U postgres -d proje_db -1 proje_yedek.dump

30. Optimizasyon: Slow Query Log (Yavaş Sorgular)

Açıklama:

Sistemi yavaşlatan sorguların tespit edilmesi için (Örn: 2 saniyeden uzun sürenler) MySQL/PostgreSQL ayarlarından yavaş sorgu loglamanın açılmasıdır.

31. Optimizasyon: EXPLAIN Kullanımı

Açıklama:

Bir SQL sorgusunun veritabanı motoru tarafından nasıl çalıştırılacağını (Hangi indexleri kullanıp kullanmadığını) analiz eder. Performans ayarlarının temelidir.

Komutlar:

EXPLAIN SELECT * FROM kullanicilar WHERE email = 'test@test.com';

32. Optimizasyon: EXPLAIN ANALYZE (PostgreSQL)

Açıklama:

Sorguyu sadece planlamakla kalmaz, gerçekten çalıştırıp milisaniye cinsinden gerçek çalışma sürelerini ekrana basar.

Komutlar:

EXPLAIN ANALYZE SELECT * FROM siparisler WHERE durum = 'Bekliyor';

33. Optimizasyon: Tablo Taraması (Full Table Scan) Nedir?

Açıklama:

Sorgulanan veriyi bulmak için veritabanının index kullanmadan tablodaki milyonlarca satırı tek tek okumasıdır. Sistemin en büyük düşmanıdır.

34. Optimizasyon: B-Tree Index Oluşturma

Açıklama:

Aramaları (WHERE koşulları) hızlandırmak için en yaygın kullanılan dizin (index) türüdür.

Komutlar:

CREATE INDEX idx_kullanici_email ON kullanicilar (email);

35. Optimizasyon: Composite (Çoklu) Index

Açıklama:

Birden fazla sütunu birlikte arayan (Örn: Ad ve Soyad) sorguları hızlandırmak için iki sütuna birden tek bir index atılmasıdır.

Komutlar:

CREATE INDEX idx_ad_soyad ON personel (ad, soyad);

36. Optimizasyon: N+1 Sorgu Problemi

Açıklama:

Yazılımların (ORM araçlarının) 1 ana sorgu atıp, çıkan 100 sonuç için veritabanına 100 ayrı sorgu daha atmasıdır. JOIN (Birleştirme) ile çözülmelidir.

37. Optimizasyon: SELECT * Kullanımından Kaçınma

Açıklama:

Sadece 2 sütuna ihtiyaç varken SELECT * ile tablodaki 50 sütunun birden çekilmesi ağ bant genişliğini ve RAM'i felç eder. İhtiyaç olan sütunlar belirtilmelidir.

38. Optimizasyon: LIMIT ve OFFSET Kullanımı (Sayfalama)

Açıklama:

Milyonlarca veriyi tek seferde çekmek yerine (Örn: Web arayüzünde), verileri 50'şer 50'şer sayfalayarak getirme kuralıdır.

Komutlar:

SELECT ad, soyad FROM musteriler ORDER BY id LIMIT 50 OFFSET 100;

39. Optimizasyon: Veritabanı Bağlantı Havuzu (Connection Pooling)

Açıklama:

Her istekte yeni bir veritabanı bağlantısı açıp kapatmak çok maliyetlidir. Havuz, hazırda açık bağlantılar tutarak gelen isteklere bunları tahsis eder (Örn: PgBouncer, HikariCP).

40. PostgreSQL: PgBouncer Kurulumu ve Kullanımı

Açıklama:

PostgreSQL için geliştirilmiş, on binlerce isteği küçük bir bağlantı havuzunda eriterek veritabanının çökmesini engelleyen hafif middleware aracıdır.

41. Optimizasyon: Veritabanı Önbellekleme (Caching)

Açıklama:

Çok sık sorgulanan ancak nadir değişen verilerin (Örn: Ülke listesi) veritabanı yerine RAM üzerinde (Redis, Memcached) tutularak veritabanı yükünün sıfırlanmasıdır.

42. Redis: In-Memory Veritabanı

Açıklama:

Anahtar-değer (Key-Value) yapısıyla tüm veriyi RAM'de tuttuğu için milisaniyenin altında cevap veren, önbellek ve session yönetimi için kullanılan sistemdir.

43. Redis: Servis Kontrolü ve Bağlantı

Açıklama:

Redis sunucusunun çalışıp çalışmadığını test eder.

Komutlar:

redis-cli ping
# Çıktı: PONG

44. Veri Replikasyonu (Replication) Master-Slave

Açıklama:

Yazma işlemlerinin ana (Master) sunucuya yapılıp, okuma işlemlerinin anında kopyalanan (Slave/Replica) sunuculardan yapılarak yükün dağıtılması mimarisidir.

45. Sharding (Yatay Bölümleme)

Açıklama:

Tablo milyarlarca satıra ulaştığında, verilerin (Örn: A-M harfi arası 1. sunucuda, N-Z arası 2. sunucuda) birden fazla fiziksel sunucuya paylaştırılmasıdır.

46. Veritabanı Kümeleme (Clustering)

Açıklama:

Yüksek erişilebilirlik (HA) için birden fazla veritabanı sunucusunun tek bir sistemmiş gibi çalışarak arıza durumunda kesintisiz devam etmesidir (Örn: Galera Cluster).

47. PostgreSQL: VACUUM İşlemi

Açıklama:

Postgres'te güncellenen veya silinen satırlar fiziksel olarak hemen silinmez ("Dead Tuples"). Vacuum, bu ölü alanları temizleyerek disk alanını geri kazandırır.

Komutlar:

VACUUM ANALYZE tablo_adi;

48. PostgreSQL: Otomatik Vacuum (Autovacuum) İzleme

Açıklama:

Dead tuple'ların sistemi yavaşlatmasını engellemek için arka planda çalışan Autovacuum servisini sürekli açık tutmak hayati önem taşır.

49. MySQL: Tablo Optimizasyonu (Optimize Table)

Açıklama:

Çok fazla kayıt silindiğinde oluşan disk parçalanmalarını (Defragmentation) gidererek MySQL tablosunu sıkıştırır ve hızlandırır.

Komutlar:

OPTIMIZE TABLE siparisler;

50. Güvenlik: SQL Injection Koruması

Açıklama:

Uygulamaların, kullanıcıdan gelen veriyi doğrudan SQL sorgusuna eklemesi sonucu oluşan zafiyettir. ORM kullanımı ve "Prepared Statements" ile çözülür.

51. Güvenlik: Veritabanı Dışa Kapatma (Bind Address)

Açıklama:

Veritabanı sunucusunun tüm internete açık olmasını engellemek için sadece yerel ağdan (veya localhost'tan) bağlantı kabul edecek şekilde ayarlanmasıdır.

Ayar (my.cnf veya postgresql.conf):

bind-address = 127.0.0.1

52. PostgreSQL: pg_hba.conf Dosyası

Açıklama:

Postgresql'e kimin, hangi IP adresinden ve hangi doğrulama yöntemiyle (MD5, SCRAM, Trust) bağlanabileceğini belirten güvenlik ayar dosyasıdır.

53. Yedekleme Stratejisi: Point-in-Time Recovery (PITR)

Açıklama:

Veritabanının sadece günlük yedeğini almakla kalmayıp, işlem loglarını (WAL/Binlog) saklayarak sistemin geçmişteki saniyesine geri döndürülebilmesini sağlar.

54. MySQL: Binary Log (Binlog) Aktifleştirme

Açıklama:

MySQL'de veritabanında yapılan tüm değişiklikleri sırasıyla kaydeden, hem replikasyon hem de PITR (Geriye dönük kurtarma) için şart olan kayıt sistemidir.

55. PostgreSQL: WAL (Write-Ahead Logging)

Açıklama:

Postgresql'de veriler diske yazılmadan önce, olası bir elektrik kesintisine karşı tüm işlemlerin güvenli şekilde işlendiği log dosyalarıdır.

56. İstatistik Güncelleme (ANALYZE)

Açıklama:

Veritabanı motorunun (Query Planner) en iyi yolu (index'i) seçebilmesi için tablolardaki mevcut verilerin dağılım istatistiklerini günceller.

Komutlar:

ANALYZE musteriler;

57. Tablo Kilitleme (Table Lock) vs Satır Kilitleme (Row Lock)

Açıklama:

Eski motorlarda (MyISAM) bir kayıt güncellenirken tüm tablo kilitlenirdi. Modern motorlarda (InnoDB) sadece ilgili satır kilitlenerek eşzamanlı çalışma performansı artırılır.

58. MySQL InnoDB Motoru

Açıklama:

MySQL'in varsayılan, ACID uyumlu, Foreign Key ve satır kilitleme (Row-level locking) destekleyen modern depolama motorudur.

59. Deadlock (Ölümcül Kilitlenme)

Açıklama:

İki farklı sorgunun, birbirlerinin kilitlediği kaynakları (satırları) karşılıklı beklemesi sonucu sonsuz döngüye girip çakışması durumudur.

60. Büyük Veri (Bulk) İçe Aktarma Optimizasyonu

Açıklama:

Milyonlarca satır veri yüklerken işlemi hızlandırmak için geçici olarak Foreign Key kontrollerini ve Indexlemeyi kapatma yöntemidir.

61. PostgreSQL: JSON/JSONB Veri Tipi

Açıklama:

İlişkisel bir veritabanı olan Postgresql içinde NoSQL gibi esnek çalışmayı, JSON verilerini saklamayı ve indekslemeyi (JSONB) sağlayan mükemmel veri tipidir.

62. MySQL/MariaDB: OOM (Out of Memory) Killer Tespiti

Açıklama:

Sunucunun RAM'i bittiğinde Linux işletim sisteminin MySQL servisini zorla öldürmesidir. Genellikle innodb_buffer_pool_size yanlış ayarlandığında yaşanır.

Komutlar:

dmesg | grep -i 'killed process'

63. Optimizasyon: innodb_buffer_pool_size Ayarı

Açıklama:

MySQL'in tabloları ve indexleri RAM'de önbelleğe alması için ayrılan alandır. Genellikle sunucudaki toplam fiziksel RAM'in %60-70'i olarak ayarlanmalıdır.

64. PostgreSQL: shared_buffers Ayarı

Açıklama:

PostgreSQL'in kendi önbelleği için ayırdığı RAM miktarıdır. Genellikle toplam RAM'in %25'i olarak ayarlanması tavsiye edilir (Çünkü Postgres OS cache'i de kullanır).

65. PostgreSQL: work_mem Ayarı

Açıklama:

Sıralama (ORDER BY) ve karma işlemleri (Hash joins) için her bağlantıya atanan bellek miktarıdır. Düşükse sorgular yavaşlar, yüksekse RAM biter (OOM).

66. Veritabanı Migrasyonu (Migration)

Açıklama:

Uygulamanın versiyonu değiştikçe veritabanındaki tabloların, sütunların kontrollü ve kod üzerinden güncellenmesi sürecidir (Flyway, Liquibase, Prisma).

67. NoSQL: MongoDB Temelleri

Açıklama:

Tablo yerine Koleksiyon (Collection), satır yerine JSON formatında Doküman (Document) kullanan, yatay ölçeklemeye çok uygun bir NoSQL veritabanıdır.

68. MongoDB: Veritabanı Yedekleme (mongodump)

Açıklama:

BSON formatında MongoDB verilerinin hızlıca yedeğini alır.

Komutlar:

mongodump --db=proje_db --out=/yedekler/

69. MongoDB: Veri Geri Yükleme (mongorestore)

Açıklama:

Alınan BSON yedeklerini tekrar sunucuya yükler.

Komutlar:

mongorestore --db=proje_db /yedekler/proje_db/

70. Yetki Kontrolü: Principle of Least Privilege

Açıklama:

Bir uygulamaya veritabanında sadece ihtiyacı olan yetkilerin verilmesidir (Örn: Raporlama aracına sadece SELECT izni verilmeli, UPDATE izni verilmemelidir).

71. Time-Series (Zaman Serisi) Veritabanları

Açıklama:

IoT sensör verileri veya sunucu logları gibi saniyede binlerce kez zaman damgasıyla (timestamp) gelen verileri işlemek için optimize edilmiş sistemlerdir (InfluxDB, TimescaleDB).

72. ORM (Object-Relational Mapping) Nedir?

Açıklama:

Yazılımcıların doğrudan SQL yazmak yerine, veritabanı tablolarını kod tarafında Nesneler (Class) olarak yönetmesini sağlayan araçlardır (Hibernate, Entity Framework, Prisma).

73. Veritabanı Triggers (Tetikleyiciler)

Açıklama:

Bir tabloda INSERT, UPDATE veya DELETE işlemi gerçekleştiğinde otomatik olarak başka bir işlemi (Örn: Loglama) tetikleyen veritabanı kodlarıdır.

74. Değişiklik Veri Yakalama (CDC - Change Data Capture)

Açıklama:

Veritabanında değişen her veriyi anlık olarak yakalayıp (Binlog/WAL üzerinden) farklı sistemlere (Elasticsearch, Kafka) senkronize eden araçlardır (Örn: Debezium).

75. Bağlantı Zaman Aşımı (Connection Timeout) Ayarları

Açıklama:

Uygulama ile veritabanı arasındaki bağlantının ne kadar süre cevap gelmezse koparılacağını belirterek zombi bağlantıların sistemi kilitlemesini önler.

76. Collation ve Character Set Hataları

Açıklama:

Veritabanında "ş, ğ, ç" gibi karakterlerin "?" olarak görünmesini engellemek için tablo, kolon ve bağlantı karakter setinin (utf8mb4) eşleşmesi işlemidir.

77. Büyük Veri Silme İşlemleri (TRUNCATE vs DELETE)

Açıklama:

DELETE satırları tek tek siler ve işlemi loglar (yavaştır). TRUNCATE tablonun içini tamamen sıfırlar ve çok daha hızlıdır (Geri alınamaz).

78. Parçalı Tablo Yapısı (Table Partitioning)

Açıklama:

Yüz milyonlarca satırlık büyük bir tabloyu fiziksel olarak aylara veya yıllara bölerek sorgu sürelerini kısaltma mimarisidir.

79. Veritabanı Disk Türü Seçimi (NVMe/SSD)

Açıklama:

Veritabanları rastgele (random) I/O işlemlerini çok kullandığı için mekanik diskler (HDD) veritabanlarında kesinlikle dar boğaz yaratır, SSD/NVMe kullanılmalıdır.

80. Veritabanı Metriklerini İzleme (Prometheus & Grafana)

Açıklama:

Veritabanının anlık RAM kullanımı, sorgu gecikmeleri ve saniyedeki okuma/yazma hızlarının (QPS) postgres_exporter veya mysqld_exporter ile izlenmesidir.

81. CAP Teoremi

Açıklama:

Dağıtık bir veritabanının aynı anda Tutarlılık (Consistency), Erişilebilirlik (Availability) ve Bölünme Toleransı (Partition Tolerance) özelliklerinin en fazla ikisini garanti edebileceğini belirten kuraldır.

82. Soft Delete (Geçici Silme)

Açıklama:

Veriyi tablodan DELETE ile fiziksel olarak silmek yerine, bir is_deleted = 1 veya deleted_at = tarih kolonu ekleyerek veri kaybını önleme stratejisidir.

83. Yük Testi (Load Testing) ile Darboğaz Tespiti

Açıklama:

Veritabanının maksimum kaç kullanıcıyı kaldırabileceğini görmek için (Örn: pgbench veya sysbench) sentetik sorgularla stress testi yapılmasıdır.

84. SQL Formatlama ve Standartlar

Açıklama:

Ekip içinde yazılan SQL sorgularının okunabilir olması için komutların büyük harfle (SELECT, WHERE), sütunların küçük harfle yazılması kuralıdır.

85. UUID vs Integer (Auto Increment) Primary Key

Açıklama:

Otomatik artan Integer anahtarlar hızlıdır ve az yer kaplar. UUID'ler (Rastgele stringler) ise güvenlidir, tahmin edilemez (IDOR koruması) ve dağınık sistemlerde çakışmayı önler.

86. Hiyerarşik Veri Saklama

Açıklama:

Kategori-Alt Kategori gibi ağaç (Tree) yapılarını veritabanında saklarken Parent_ID yöntemi veya Ltree (PostgreSQL) uzantısının kullanılmasıdır.

87. Full-Text Search (Tam Metin Arama)

Açıklama:

"LIKE '%kelime%'" sorgusunun yavaşlığını aşmak için, uzun metin makaleleri içinde geçen kelimelerin Google mantığıyla kelime dizinlerine ayrılarak hızlı aranmasıdır.

88. Güvenlik: Veri Maskeleme (Data Masking)

Açıklama:

Üretim (Production) veritabanı yedeğinin test ortamlarına alınırken şifre, email, kredi kartı gibi gerçek verilerin anlamsız verilerle değiştirilerek anonimleştirilmesidir.

89. Güvenlik: TDE (Transparent Data Encryption)

Açıklama:

Sunucunun diski fiziksel olarak çalınsa bile veritabanı dosyalarının okunamaması için disk seviyesinde şifreleme uygulanmasıdır.

90. Veritabanı Bağımlılığını Azaltma (Vendor Lock-in)

Açıklama:

Kodun sadece Oracle veya sadece MSSQL'e özgü komutlarla yazılması yerine, standart ANSI SQL kurallarına uygun yazılarak gelecekte veritabanı taşıma işlemlerinin kolaylaştırılmasıdır.

91. Geçici Tablolar (Temporary Tables)

Açıklama:

Sadece o anki bağlantı oturumu (Session) boyunca yaşayan, oturum kapandığında veritabanından otomatik silinen geçici hesaplama tablolarıdır.

92. Çöp Toplama (Garbage Collection / Purge)

Açıklama:

Veritabanındaki işlem geçmişlerinin ve eski versiyonların sistemin performansını düşürmeden düzenli olarak temizlenmesidir.

93. MySQL: innodb_flush_log_at_trx_commit Ayarı

Açıklama:

Performans ve güvenlik ayarıdır. "1" değeri tam güvenlik (her an diske yazar), "2" değeri yüksek hız (saniyede bir diske yazar, elektrik kesintisinde 1 sn kayıp olabilir) sağlar.

94. PostgreSQL: pg_stat_statements Eklentisi

Açıklama:

Hangi sorgunun kaç kez çalıştığını, toplamda ve ortalamada ne kadar CPU süresi harcadığını listeleyen muazzam bir performans izleme uzantısıdır.

95. Uzun Süren İşlemleri Arka Plana Alma

Açıklama:

Web kullanıcısının veritabanını beklememesi için ağır rapor çekme veya toplu mail atma işlemlerinin veritabanına direkt değil, kuyruk sistemlerine (RabbitMQ/Celery) aktarılmasıdır.

96. Ortamların Ayrılması (Dev/Test/Prod)

Açıklama:

Geliştiricilerin doğrudan canlı (Production) veritabanında test yapmasını engellemek için veritabanlarının fiziksel ve ağ olarak ayrılması mimarisidir.

97. Active-Active Mimari ve Çakışmalar (Split-Brain)

Açıklama:

İki veritabanının da aynı anda yazma işlemi kabul ettiği mimarilerde, aralarındaki bağlantı koparsa ikisinin de kendini "Patron" sanıp farklı veriler kaydetmesi ve verinin çürümesi (Split-Brain) sorunudur.

98. Veritabanı Yükseltme Stratejisi (Blue-Green Deployment)

Açıklama:

Yeni veritabanı versiyonuna geçerken canlı sistemi kapatmak yerine, yanında yeni bir kopya oluşturup (Green) veriyi senkronize ettikten sonra trafiği kesintisiz yenisine yönlendirme işlemidir.

99. DBaaS (Database as a Service)

Açıklama:

Yedekleme, güncelleme, disk yönetimi gibi sistem süreçlerinin AWS (RDS), Supabase veya PlanetScale gibi bulut sağlayıcıları tarafından yönetildiği zahmetsiz veritabanı hizmetleridir.

100. Always Backup Your Backup (Yedeklerinizi Test Edin)

Açıklama:

Veritabanı yöneticisinin en önemli altın kuralı: "Alındığını sandığınız ama geri yüklenemeyen (Restore edilemeyen) yedek, yedek değildir." Düzenli olarak boş bir sunucuya restore testleri yapılmalıdır.