Sobes.tech
Middle

SQLda qanday blokirovka turlari mavjud?

sobes.tech AI

AIdan javob

SQL'da blok turlari:

  • Dar daraja:

    • Jadval bloklari (Table Locks): Butun jadvalni bloklaydi. Oson amalga oshiriladi, ammo paralellikni sezilarli darajada kamaytirishi mumkin. Butun jadvalni o'zgartiradigan operatsiyalar uchun yaxshi (masalan, ALTER TABLE).
    • Qator bloklari (Row Locks): Boshqa qatorlarni bloklaydi. Yuqori paralellikni ta'minlaydi, ammo boshqarish uchun ko'proq resurs talab qiladi. Ko'pchilik DBMSlarda INSERT, UPDATE, DELETE uchun standart foydalaniladi.
  • Kirish turiga ko'ra:

    • Ulashilgan blok (Shared Lock - S Lock): Bir nechta tranzaktsiyalar ma'lumotlarni bir vaqtning o'zida o'qishiga imkon beradi, ammo boshqalar yozishni taqiqlaydi.
    • Ekskluziv blok (Exclusive Lock - X Lock): Faqat bitta tranzaktsiya ma'lumotlarga kirish huquqiga ega (o'qish va yozish) va boshqalarni bloklaydi.
    • Niyat blok (Intention Lock): DBMSga tranzaktsiyalar pastroq darajadagi bloklarni (qatorlar yoki jadvallar) o'rnatishni rejalashtirayotganini ko'rsatadi. Masalan, IS (Intention Shared), IX (Intention Exclusive). Bu DBMSga bloklarning mosligini tezroq tekshirishga yordam beradi.
  • Boshqa turlar:

    • Oraliq blok (Range Lock): Indeksdagi qatorlar oraliğini bloklaydi. Fantom o'qishni oldini olish uchun ishlatiladi.
    • Metama'lumotlar bloklari (Metadata Lock): Ob'ektning metama'lumotlarini (jadval, ko'rinish va boshqalar) bloklaydi. DDL operatsiyalari davomida ishlatiladi.

Bloklarning mosligi, bir nechta tranzaktsiya bir vaqtning o'zida ma'lum turlar bloklarni ushlab turishi mumkinligini belgilaydi.

Blok turi S X IS IX
S Ha Yo'q Ha Yo'q
X Yo'q Yo'q Yo'q Yo'q
IS Ha Yo'q Ha Ha
IX Yo'q Yo'q Ha Ha