Jak zorganizowano klaster PostgreSQL? Schemat replikacji i odporności na awarie?
DBA / Database
Przedstaw interesujące zadanie, które rozwiązałeś w poprzednim miejscu pracy.
Zadanie 5: EXPLAIN pokazuje type: ALL, rows: 200000, Using temporary; Using filesort. Co to oznacza i jak to zoptymalizować?
Zadanie 1: Znaleźć 5 najlepszych tras (stacja odjazdu, stacja przyjazdu) pod względem liczby zadań za styczeń 2025 z tabeli harvester_tasks_queue.
Jakie narzędzia monitorujące używałeś?
Czy schemat danych został znormalizowany w Twoim projekcie? Jak podszedłeś do normalizacji?
Zadanie 3: Znaleźć duplikaty zadań (według departure_station, arrival_station, departure_date, crawler_id) i zaproponować plan bezpiecznego usunięcia z tabeli harvester_tasks_queue.
Zadanie 4: Optymalizacja zapytania WHERE DATE(tep.available_from_departure_date) = departureDate. Wyjaśnij problem i zaproponuj rozwiązanie.
Jak chronić docelową tabelę przed duplikatami podczas wstawiania danych z tabeli tymczasowej? Jak zaktualizować istniejące rekordy nowszymi danymi (upsert)?
Jak radziliście sobie z deadlockami w systemie o dużym obciążeniu? Co zrobiliście po ich wykryciu?
Jak sprawdzasz wyniki procedury składowanej lub zapytania? Metody i podejścia.
Jak zorganizować architekturę tabeli, która się rozrasta, aby szybko pracować tylko na świeżych danych? Jak skutecznie usuwać stare dane?
Pytanie 2: Znaleźć trasy z aktywnymi zadaniami (status = 'Gotowe do rozpoczęcia'), ale bez aktualizacji od ponad 30 dni. Schematy: harvester_tasks_queue i station__crawler_mapping_with_crawler_ids.
Czy miałeś przypadki aktualizacji wersji produktu bazy danych? Jak się do tego przygotowałeś i jakie problemy się pojawiły?
Opowiedz o swojej obecnej pozycji: obowiązki, zespół, infrastruktura, narzędzia.