在MySQL中生成(即写入)行号索引列

时间:2011-10-06 13:43:44

标签: mysql

我在MySQL表中需要一个行号索引,基于表列上的ORDERing。

我知道
SELECT ... @curRow := @curRow + 1 AS row_number ...
输出行号的

技巧;然而,我真正想要的是将该行号作为持久列写入表。性能是一个关键问题。实现这个目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

朋友的小费保存了这一天。这似乎是完成任务的最快方法:

  1. 创建一个具有与原始列相同的列结构的新表,并添加一个自动增量列。
  2. 使用INSERT INTO ... SELECT ... ORDER BY
  3. 将原始表中的数据添加到新表中
  4. 删除原始表格
  5. 在7秒内完成了900万行。