• Как поступить? Фриланс или офис?

    @qfake
    Также был на двух собеседованиях, где заставляли решать какие-то задачи с массивами и непойми чем еще. Как будто они как-то мне помогут у работе.

    Если вы ХОРОШО ЗНАЕТЕ php, то имеете понимание о том, что решение задач с массивами очень и очень сильно поможет вам в работе. Мне прям любопытно, есть тут кто-нибудь, кто пишет на php и не видел массивов? Отзовитесь.
    Многие компании высылают тестовые, это нормально. Наиболее простой способ понять, что вы из себя представляете - посмотреть ваш код. Если есть проблема с тестовым, то есть и вероятность, что работу в этой компании вы не потянете.
    Вообще, вопрос похож на шутку, если честно)
    Вы демонстрируете сложности в том, чтобы показать свои умения на практике, но хотите, чтобы за вами охотились работодатели и платили не как стажеру.
    GavriKos говорит истинную правду, без опыта вы не знаете ничего. Но часто понимание приходит только тогда, когда вокруг все горит, а вы сидите с мыслью, что на курсах вас этому не учили..
    Ответ написан
    Комментировать
  • Как избавиться от блокировок при обслуживание партиций внешней таблицы в БД PostgreSQL?

    Melkij
    @Melkij
    PostgreSQL DBA
    vacuum full и reindex требуют тяжёлую блокировку и держать блокировку будут долго. Поэтому обычно их избегают.
    drop разумеется тоже требует эксклюзивную блокировку, но на короткое время. Важно понимать скользкую ситуацию - если вы пытаетесь взять эксклюзивную блокировку, но не можете её получить из-за других выполняемых транзакций - вы будете ждать окончания этих мешающих транзакций, но уже будете блокировать работу последующих транзакций.

    Если вы считаете, что много места пропало впустую - то это можно посчитать (поставив contrib расширение pgstattuple) вот этими нашими запросами: для таблиц и для индексов
    Если да, проблема с местом в этом - то вам помогут pgcompacttable или pg_repack

    Если данные по большей части архивные - имеет смысл заменить btree индексы на brin. Они медленнее, но очень сильно компактнее по диску.

    А отцеплять партиции - посмотреть в pg_stat_activity что вообще происходит, нет ли аномально длинных транзакций или idle in transaction (т.е. затупов на приложении). Затем с statement_timeout и lock_timeout в 1 секунду (или меньше даже) пробовать отцепить пока не получится.
    Ответ написан
    4 комментария