С какими СУБД вы работали на предыдущих проектах?

Ответ

Основной опыт работы с PostgreSQL и MySQL.

В PostgreSQL:

  • Писал и оптимизировал сложные SQL-запросы с использованием JOIN, оконных функций и CTE.
  • Создавал и настраивал индексы (B-tree, частичные) для ускорения поиска.
  • Работал с транзакциями, обеспечивая атомарность операций и уровни изоляции.
  • Пример оптимизации запроса с анализом плана выполнения:
    EXPLAIN ANALYZE
    SELECT o.id, o.total, c.name
    FROM orders o
    JOIN customers c ON o.customer_id = c.id
    WHERE o.status = 'completed'
    AND o.created_at > NOW() - INTERVAL '30 days';

В MySQL:

  • Настраивал репликацию Master-Slave для отказоустойчивости и чтения.
  • Проводил миграции данных с проверкой целостности через сравнение контрольных сумм (CHECKSUM TABLE).
  • Проводил нагрузочное тестирование с помощью JMeter для оценки производительности под высокой нагрузкой.
  • Отлаживал и сопровождал хранимые процедуры и триггеры для бизнес-логики.

Ответ 18+ 🔞

Да что ж ты мне подсунул, сука, про эти базы данных? Ну ладно, раз уж на то пошло, слушай сюда, как я с ними воевал.

Основной мой опыт, блядь, это PostgreSQL и MySQL. Две банды, два лагеря, хуй с горы.

В PostgreSQL я, можно сказать, как рыба в воде, блядь.

  • Писал и оптимизировал такие SQL-запросы, что сам потом, бля, смотрел на них и думал: "Ёпта, это я наваял?". Все эти JOIN'ы, оконные функции и CTE — для меня как два пальца обоссать.
  • Создавал индексы, блядь, на все случаи жизни: B-tree, частичные. Знаешь, зачем? Чтобы поиск не ебал мозги пользователям, а летал, как угорелый.
  • С транзакциями работал — атомарность, изоляция, вся эта хуйня. Чтобы если что-то пошло не так, можно было откатиться и сделать вид, что ничего не было, блядь.
  • Вот, смотри, пример, как я запрос оптимизировал. Без EXPLAIN ANALYZE тут, бля, никуда. Как слепой котёнок иначе.
EXPLAIN ANALYZE
SELECT o.id, o.total, c.name
FROM orders o
JOIN customers c ON o.customer_id = c.id
WHERE o.status = 'completed'
  AND o.created_at > NOW() - INTERVAL '30 days';

Смотрю на план выполнения и думаю: "Ну что, сука, где у тебя тут узкое место? Ага, вот ты где, пиздюк!" И начинаю индексы лепить.

А в MySQL, блядь, другая песня совсем.

  • Настраивал репликацию Master-Slave. Это чтобы если один сервак накрылся медным тазом, второй мог подхватить и работать, как ни в чём не бывало. Отказоустойчивость, ёпта.
  • Миграции данных проводил. И не просто так, а с проверкой целостности через CHECKSUM TABLE. Чтобы после переноса не выяснилось, что половина данных сбежала, блядь.
  • Нагрузочное тестирование делал через JMeter. Нагружал базу так, чтобы понять, когда она скажет: "Всё, пиздец, я больше не могу!" и начнёт выплёвывать ошибки вместо ответов.
  • Хранимые процедуры и триггеры отлаживал. Там такая бизнес-логика бывает запрятана, что диву даёшься. Разбираешься, как чёрт в облаках, блядь.

Вот так вот, коротко и ясно. А то некоторые резюме пишут, как романы Толстого, в рот меня чих-пых.