Как беше организиран кластерът PostgreSQL? Схема на репликация и отказоустойчивост?
DBA / Database
Представете интересна задача, която сте решавали на предишното си работно място.
Задача 5: EXPLAIN показва type: ALL, rows: 200000, Using temporary; Using filesort. Какво означава това и как да го оптимизираме?
Беше ли нормализирана схемата на данните във вашия проект? Как подходихте към нормализацията?
Задача 1: Намерете топ 5 маршрута (станция на тръгване, станция на пристигане) по брой задачи за януари 2025 г. от таблицата harvester_tasks_queue.
Какви инструменти за мониторинг сте използвали?
Задача 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.
Имахте ли случаи на актуализиране на версията на продукта на базата данни? Как се подготвихте и какви проблеми възникнаха?