Databaseda Concurrent index yaratish.
Bilarmidingiz siz qachonki production serverda aynan bir tableda index create qilsangiz shunda database avtomatik write qilishni block…
Databaseda Concurrent index yaratish.
Bilarmidingiz siz qachonki production serverda aynan bir tableda index create qilsangiz shunda database avtomatik write qilishni block qiladi.
Aytaylik siz productionda indexing qilishingiz kerak va users degan tableni ichida 50 million row bor. Siz tabiiyki quyidagi komanda orqali index yaratasiz:
CREATE INDEX idx_users_email
ON users(email);
Bu index qurmagur ham 10 minut davomida ishladi va aytganimizdek write qilishni blockladi. Production server shunda requestlarni queueda ushlab turishni boshladi va ba’zi requestlar shunchaki timeout bo’lib ketdi. Juda hunuk holat to’g’rimi?
Yechim esa juda oddiy “CREATE INDEX CONCURRENTLY” ni ishlatishdir
Misol:
CREATE INDEX CONCURRENTLY idx_users_email
ON users(email);
Bu table write operation’larini block qilmaydi. Production system ishlashda davom etadi.
Undan tashqari agar siz ORM ishlatsangiz misol uchun Django ORM da siz to’g’ridan-to’g’ri SQL query yoza olmaysiz uni o’rniga siz shu resursdan foydalanishiz mumkin: https://docs.djangoproject.com/en/6.0/ref/contrib/postgres/operations/#django.contrib.postgres.operations.AddIndexConcurrently
메타데이터
- post_id
- a5a620fe3207
- slug
- databaseda-concurrent-index-yaratish-a5a620fe3207
- url
- https://medium.com/@thesayfulla/databaseda-concurrent-index-yaratish-a5a620fe3207
- canonical_url
- https://medium.com/@thesayfulla/databaseda-concurrent-index-yaratish-a5a620fe3207
- author_url
- https://medium.com/@thesayfulla
- status
- ok
- fetched_at
- 2026-06-20 20:29:01