Ответы пользователя по тегу Проектирование программного обеспечения
  • Всегда ли нужно использовать внешние ключи?

    terrier
    @terrier
    Есть ли выигрыш в производительности, если использовать внешние ключи в postgresql?

    Видимо имелось в виду, есть ли выигрыш в производительности если НЕ использовать внешние ключи. Да, может быть. Во-первых сама по себе проверка foreign key не бесплатна - это system-level триггер. Во-вторых в постгресе берется ( среди прочего ) SHARED лок на строку в родительской таблице. Соответсвенно - нужно учитывать влияние этого на производительность и следить за дедлоками.

    Однако вот вам практический совет - оставьте пока эти ключи, постгрес весьма быстр даже с ними и очень большой вопрос стоит ли жертвовать целостностью данных ради некоторого ( возможно несущественного ) прироста производительности ( а без ключей данные у вас гарантированно разъедутся).
    Ответ написан
    4 комментария