MySQL最佳实践:更新关系表

时间:2012-01-18 23:43:36

标签: mysql database-design relational-database

我有一个主要的MySQL表,其中包含产品。每个产品的任何多个字段都存放在关系表中(例如products_colour,products_photos等)。每次更新产品时,我都不确定最佳做法是什么:

  1. DELETE关系表中与正在更新的产品相对应的所有行,并INSERT将所有新字段放入一个相对较新的表中;
  2. 只有DELETE不再需要的关系表中的那些行,以及INSERT尚未存在的全新行。
  3. 第一个选项毯删除所有内容并在每次更新产品时插入新数据;第二个选项搜索现有值,计算它们是否发生冲突,如果是,则删除它们,然后插入剩余数据。或者沿着这些方向......

    就最佳实践而言,最好的做法是什么?如果我和第一个一起去,真的很重要吗?是否会使 与MySQL性能有很大差异?

1 个答案:

答案 0 :(得分:4)

您的用例的“最佳做法”是DELETE旧行,然后是INSERT新行。 请务必使用transactions