Поскольку ограничения базы данных гарантированы, они могут в некоторых случаях допускать дополнительную оптимизацию.
Например, скажем, у вас есть представление
CREATE VIEW orders_vw AS
SELECT ord.order_id, ord.customer_id, lin.product_id
FROM orders ord JOIN order_lines lin on ord.order_id = lin.order_id
Тогда у вас есть запрос, который делает SELECT product_id FROM orders_vw WHERE order_id = :val
При соблюдении целостности база данных знает, что у любого order_id в order_lines есть одна строка в родительской таблице, и, поскольку на самом деле не выбрано значение из таблицы orders, она может сохранить работу, не посещая таблицу orders.
Без ограничения база данных не может быть уверена, что у записи в order_lines есть родительский элемент, поэтому она должна выполнить дополнительную работу по просмотру таблицы заказов, чтобы проверить ее.
В зависимости от ваших шаблонов запросов удаление ограничений может фактически увеличить нагрузку на БД.