Mysql递增变量性能

时间:2015-06-01 17:24:47

标签: mysql performance

我一直在寻找一种方法来对mysql表中的项进行排序。 这是表格的简化版本

sqlfiddle => http://sqlfiddle.com/#!2/78521b/3/0

sort

因此,一旦用户对项目(卡片)进行了排序,我想在SET @n=0; UPDATE `test_sort` SET `sort` = @n := @n + 1 ORDER BY `sort` 列上运行查询,以使其保持一致。

此处找到解决方案:MySQL update a field with an incrementing variable

{{1}}

问题:如果在数千(或数百万)条记录中使用该查询,该查询将如何行动(性能明智)?

1 个答案:

答案 0 :(得分:1)

不要在表格中存储sort;将它存储在一个单独的表中。此外,不要UPDATE该表,重新创建它。此外,使用以下内容来避免任何停机时间:

CREATE TABLE New SELECT ... -- generate new sort order
RENAME TABLE Sort TO Old, New To Sort;
DROP TABLE Old;