Я должен использовать внешние ключи? [дубликат]

Вы можете использовать этот код Увеличить ограничение памяти PHP

define( 'WP_MEMORY_LIMIT', '1024M' );

Пожалуйста, проверьте ниже вещи также.

  • Проблемы с вашим веб-хостингом.
  • Удалите пустые строки и закрывающий тег PHP (?>) Из файла wp-config.
23
задан Community 23 May 2017 в 12:18
поделиться

7 ответов

Внешний ключ на самом деле не улучшает производительность, на самом деле они подвергаются маленькой потере производительности на всех операциях записи, чтобы гарантировать, что ограничение сопровождается.

причина, почему Вы хотите использовать их, состоит в том, чтобы предотвратить разрушительные операции записи. Если у Вас нет их, содержащего ошибки кода, или плохой sql оператор может удалить строки, которые, как ожидают, будут там.

14
ответ дан 29 November 2019 в 01:41
поделиться

Целостность не может быть проблемой сегодня, но это - точное отношение, которое делает ее проблемой завтра или две недели с этого времени.

13
ответ дан 29 November 2019 в 01:41
поделиться

Внешний ключ является, прежде всего, инструментом для осуществления целостности БД, которая не связана со скоростью выполнения.

, Если Вы уже оптимизировали свой индексный дизайн, тогда Вам, вероятно, установили эти индексы уже, по крайней мере, как групповые индексы. Таким образом, я не ожидал бы изменения производительности только от установки внешних ключей (whicb, даже обязательно не включают индекс.)

я немного с подозрением относился бы к Вашему самодовольству об оптимизации Вашего дизайна, тем не менее, если Вам уже не закрепили это понятие.

Read документация для Внешних ключей с целью понимания, что они делают для осуществления целостности (об этом стоит знать в любом случае.) Тогда видят, не отвечает ли это на Ваш вопрос более полностью.

6
ответ дан 29 November 2019 в 01:41
поделиться

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

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

4
ответ дан 29 November 2019 в 01:41
поделиться

Существует одна функция/ограничение, которую Внешние ключи приносят к Вашей системе, которая не была упомянута до сих пор. Это - фиксация/логика формирования транзакций (это - то, что я называю ею так или иначе). С включенными Внешними ключами все строки для обновления, во всех таблицах влияли на потребность быть там, чтобы фиксация работала (не, бросают ошибку SQL, что Ограничения Внешнего ключа были нарушены).

, Если у Вас есть тело кода, который работает и, "играет быстро и свободный", с фиксациями/транзакциями. Тогда Вы могли быть в для некоторого исправления, для получения вещей, работающих с FK в схеме.

кроме того, Oracle, по крайней мере, позволяет Вам отключить ограничения (не, просто отбрасывают/удаляют). Таким образом, можно переключить их вкл\выкл легко. Удобный, когда Вы хотите сделать некоторые объемные операции или с издержками ограничений или сделать некоторую "хирургию" на данных, которые имеют промежуточные состояния, которые привели бы ограничения к сбою.

4
ответ дан 29 November 2019 в 01:41
поделиться

Внешние ключи также помогают содержать Вашу базу данных в чистоте, поскольку у Вас может быть база данных, делают каскадное отбрасывание.

2
ответ дан 29 November 2019 в 01:41
поделиться

Внешние ключи делают целостность данных лучше, производительность, несколько медленнее когда удаление/вставка/обновление.
В моей последней компании мы решили сохранить целостность/соединения в BL, поскольку это делает изменения в BL более простыми (думайте сотни миллионов записей). Если у Вас есть небольшое приложение, я не вижу оснований, почему бы не это в слое данных (дб)

1
ответ дан 29 November 2019 в 01:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: