Sobes.tech
Middle

SQL'de hangi tür kilitler vardır?

sobes.tech yapay zeka

AI'dan gelen yanıt

SQL'de kilit türleri:

  • Seviyeye göre:

    • Tablo Kilitleri (Table Locks): Tüm tabloyu kilitler. Uygulaması kolaydır, ancak paralelliği önemli ölçüde azaltabilir. Tüm tabloyu değiştiren işlemler için uygundur (örneğin, ALTER TABLE).
    • Satır Kilitleri (Row Locks): Bireysel satırları kilitler. Yüksek paralellik sağlar, ancak yönetim için daha fazla kaynak gerektirir. Çoğu DBMS'de varsayılan olarak INSERT, UPDATE, DELETE işlemleri için kullanılır.
  • Erişim türüne göre:

    • Paylaşılan Kilit (Shared Lock - S Lock): Birden fazla işlemin aynı anda veri okumasına izin verir, ancak diğerlerinin yazmasını engeller.
    • Özel Kilit (Exclusive Lock - X Lock): Sadece bir işlemin verilere erişmesine izin verir (okuma ve yazma), diğerlerini engeller.
    • Niyet Kilidi (Intention Lock): İşlemlerin daha düşük seviyedeki (satır veya tablo) kilitleri koymayı planladığını belirtir. Örneğin, IS (Shared Niyet), IX (Exclusive Niyet). Bu, DBMS'nin kilit uyumluluğunu daha hızlı kontrol etmesine yardımcı olur.
  • Diğer türler:

    • Aralık Kilidi (Range Lock): Bir indeks içindeki satır aralığını kilitler. Hayalet okuma (phantom read) önlemek için kullanılır.
    • Meta veri Kilidi (Metadata Lock): Nesnenin meta verilerini (tablo, görünüm vb.) kilitler. DDL işlemleri sırasında kullanılır.

Kilitlerin uyumluluğu, birden fazla işlemin aynı anda belirli kilit türlerini tutup tutamayacağını belirler.

Kilit Türü S X IS IX
S Evet Hayır Evet Hayır
X Hayır Hayır Hayır Hayır
IS Evet Hayır Evet Evet
IX Hayır Hayır Evet Evet