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

时间:2010-04-06 09:34:49

标签: mysql database

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

按插入时间排序的每次点击都太慢了。我想保留一个单独的表与最后插入的ID。

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

是否有更有效的方法来执行此操作。

3 个答案:

答案 0 :(得分:4)

您可以使用a trigger在数据库端执行此操作。

答案 1 :(得分:1)

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

与触发器相关的性能开销很小,但是如果我没记错的话,它对于正常使用来说是相当微不足道的(取决于你当然用它做什么)。大多数情况下,如果您正在执行批量上传,这只是一个问题(在这种情况下,您通常会在任务期间删除/禁用触发器)。在我看来,这里的开销是非常小的,因为你除了在Y上插入INS之外,你真的只在X上执行一次INSERT / UPDATE。

基本上,与当前方法相比,触发器将扩展得更好,因为您不必执行查找以查找上次更新的记录,只需执行插入操作,然后直接将新记录的主键插入“最后更新”表格。

答案 2 :(得分:0)

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

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

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

此外,向DB添加触发器对我来说总是感觉非常可疑(如不明显)!