代码之家  ›  专栏  ›  技术社区  ›  Saif Bechan

插入Y时更新记录X的最佳方法

  •  1
  • Saif Bechan  · 技术社区  · 16 年前

    我有一个很大的表,主要用于备份和管理目的。唯一重要的记录是最后插入的记录。

    每次按顺序点击时插入速度太慢。我想用上次插入的ID保留一个单独的表。

    在php i中,我现在插入,获取最后插入的ID,并更新另一个表。

    有更有效的方法吗?

    3 回复  |  直到 16 年前
        1
  •  1
  •   Moonshield    16 年前

    (很抱歉将此作为单独的答案发布,对Matti的答案发表评论有点太长了。)

    与触发器相关联的性能开销很小,但是如果我能正确地回忆起,对于正常使用它是可以忽略的(当然这取决于您使用它做了什么)。大多数情况下,只有在执行批量上载时才会出现问题(在这种情况下,您通常会在任务期间删除/禁用触发器)。在我看来,这里的开销是非常小的,因为除了y上的insert之外,您实际上只在x上执行了一次insert/update。

    本质上,与当前方法相比,触发器的伸缩性要好得多,因为您不必执行查找以查找最后更新的记录,而只需执行插入操作,然后将新记录的主键直接插入“最后更新”表中。

        2
  •  4
  •   Matti Virkkunen    16 年前

    您可以在数据库端使用 a trigger .

        3
  •  0
  •   lexu    16 年前

    为什么不在那个字段上添加索引?

    快速搜索和排序正是索引的作用。

    在表格中更新自己的“伪索引”等于重新发明了轮子。

    此外,给数据库添加触发器对我来说总是很可疑(就像不明显的那样)。