როგორ იყო ორგანიზებული PostgreSQL კლასტერი? რეპლიკაციის სქემა და უარყოფითი გამძლეობა?
DBA / Database
წინა სამუშაო ადგილზე გადაწყვეტილი საინტერესო დავალება წარმოადგინეთ.
მეორე დავალება: EXPLAIN აჩვენებს type: ALL, rows: 200000, Using temporary; Using filesort. რას ნიშნავს ეს და როგორ შეიძლება ოპტიმიზაცია?
მუშაობა 1: იპოვეთ 2025 წლის იანვარში harvester_tasks_queue-ის ცხრილიდან სამუშაოების რაოდენობის მიხედვით ტოპ-5 მარშრუტი (გასვლითი სადგური, შემომავალი სადგური).
თქვენი პროექტის მონაცემთა სქემა ნორმალიზებული იყო? როგორ მიუდექით ნორმალიზაციას?
რომელი მონიტორინგის ინსტრუმენტები გამოიყენეთ?
მუშაობა 3: იპოვეთ დუბლიკატები დავალებების (departure_station, arrival_station, departure_date, crawler_id) და შემოგთავაზეთ უსაფრთხო წაშლის გეგმა harvester_tasks_queue-ისგან.
მუშაობა 4: ოპტიმიზაცია WHERE DATE(tep.available_from_departure_date) = departureDate-ის მოთხოვნის. განმარტეთ პრობლემა და შემოგთავაზეთ გადაწყვეტილება.
როგორ დავიცვათ სამიზნე სია დუბლიკატებისგან დროებითი სიის მონაცემების შეტანისას? როგორ განვაახლოთ არსებული ჩანაწერები უფრო ახალი მონაცემებით (upsert)?
როგორ გამკლავდით მაღალი დატვირთვის სისტემაში deadlock-ებთან? რა გააკეთეთ მათ აღმოსაჩენად?
როგორ გსურთ შეამოწმოთ შენახული პროცედურის ან შეკითხვის შედეგები? მეთოდები და მიდგომები.
როგორ დავგეგმოთ ზრდადი ცხრილის არქიტექტურა, რათა სწრაფად მუშაობა მხოლოდ ახალი მონაცემებით? როგორ ეფექტურად წავშალოთ ძველი მონაცემები?
კითხვა 2: იპოვეთ მარშრუტები აქტიური დავალებებით (სტატუსი = 'მოწყობილია დაწყებისთვის'), მაგრამ 30+ დღის განმავლობაში განახლებები არ არის. სქემები: harvester_tasks_queue და station__crawler_mapping_with_crawler_ids.
თქვენ გქონდათ მონაცემთა ბაზის პროდუქტის ვერსიის განახლების შემთხვევები? როგორ მოემზადეთ და რა პრობლემები წარმოიშვა?
გთხოვთ, თქვენი მიმდინარე პოზიციის შესახებ ისაუბროთ: პასუხისმგებლობები, გუნდი, ინფრასტრუქტურა, ინსტრუმენტები.