我有一个表products
,其中有超过5000万条记录。我想跟踪谁在系统中上传了给定产品,但是仅将uploaded_by_id
添加到如此庞大的表中并不是我想要的解决方案。除了联接表,我还能创建什么以查询在给定时间范围内通过给定ID上传的产品?
Product.where(uploaded_by_id: @user.id, created_at: time_range)
是我需要做的,但我需要更有效的方法。
答案 0 :(得分:0)
您可能希望研究
之类的工具两个工具都允许在不锁定表的情况下更改表。
答案 1 :(得分:0)
添加另一个表(垂直分区),而不是触摸主表。新表将具有相同的PRIMARY KEY
,但没有AUTO_INCREMENT
。新列将进入此表。
仅当新列具有值时,才在新表中创建行。
当您不需要新列时,请继续从旧表中读取。
当您还需要新列时,请使用LEFT JOIN
。