PostgreSQL klasteri necə təşkil olunub? Nüsxə və uğursuzluğa davamlılıq sxemi?
DBA / Database
Əvvəlki iş yerinizdə həll etdiyiniz maraqlı bir vəzifəni təqdim edin.
Tapşırıq 5: EXPLAIN type: ALL, rows: 200000, Using temporary; Using filesort göstərir. Bu nə deməkdir və necə optimallaşdırmaq olar?
Vəzifə 1: Yanvar 2025 üçün harvester_tasks_queue cədvəlində tapşırıq sayına görə ilk 5 marşrutu (çıxış stansiyası, gəliş stansiyası) tapın.
Layihənizdə məlumatların sxeması normalizasiya olundu mu? Normalizasiya ilə necə məşğul oldunuz?
Hansı monitorinq alətlərindən istifadə etmisiniz?
Vəzifə 3: Tapşırıqların təkrarlanmasını (departure_station, arrival_station, departure_date, crawler_id) tapın və harvester_tasks_queue cədvəlindən təhlükəsiz silmə planı təklif edin.
Tapşırıq 4: WHERE DATE(tep.available_from_departure_date) = departureDate sorğusunu optimallaşdırın. Problemi izah edin və həll təklif edin.
Müvəqqəti cədvəldən məlumat daxil edərkən hədəf cədvəlini təkrarlardan necə qorumaq olar? Mövcud qeydləri daha yeni məlumatlarla necə yeniləmək olar (upsert)?
Yüksək yüklü sistemdə deadlocklarla necə məşğul oldunuz? Onları aşkarladıqda nə etdiniz?
Saxlanılan prosedur və ya sorğunun nəticələrini necə yoxlayırsınız? Yöntemlər və yanaşmalar.
Artan cədvəl memarlığını necə təşkil etmək olar, yalnız ən yeni məlumatlarla sürətli işləmək üçün? Köhnə məlumatları necə effektiv şəkildə silmək olar?
Sual 2: Aktiv tapşırıqları olan (status = 'Başlamağa hazır') marşrutları tapın, lakin 30+ gündür yeniləmələr olmadan. Şemalar: harvester_tasks_queue və station__crawler_mapping_with_crawler_ids.
Verilənlər bazası məhsulunun versiyasını yeniləmək halları oldumu? Necə hazırlaşdınız və hansı problemlər ortaya çıxdı?
Cari mövqeyiniz haqqında danışın: vəzifələr, komanda, infrastruktur, alətlər.