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,DELETEişlemleri için kullanılır.
- 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,
-
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 |