Рекомендации MySQL: обновление реляционных таблиц - PullRequest
3 голосов
/ 19 января 2012

У меня есть основная таблица MySQL, в которой хранятся продукты. Любые несколько полей для каждого продукта размещаются в реляционных таблицах (например, products_colour, products_photos и т. Д.). Каждый раз, когда я обновляю продукт, я не уверен, что лучше всего делать:

  1. DELETE все строки в реляционных таблицах, которые соответствуют обновляемому продукту, и INSERT все новые поля в относительно свежей таблице;
  2. Только DELETE те строки в реляционных таблицах, которые больше не требуются, и INSERT новые строки, которых еще нет.

Первый вариант одеяла удаляет все и вставляет свежие данные каждый раз, когда продукт обновляется; вторая опция ищет существующие значения, вычисляет, конфликтуют ли они, удаляет их, если это так, и вставляет оставшиеся данные. Или что-то в этом роде ...

С точки зрения наилучшей практики, что лучше всего делать? Действительно ли это важно, если я пойду с первым? Будет ли это , что сильно повлияет на производительность MySQL?

1 Ответ

4 голосов
/ 19 января 2012

«Лучшая практика» для вашего варианта использования: DELETE старые строки, затем INSERT новые. Убедитесь, что вы используете транзакции !

...