MySQL:使用锁

时间:2016-03-02 20:49:44

标签: mysql sql locking

我有一个相当大的桌子,有36米的行。我想创建另一个包含随机顺序列之一的表。

CREATE TABLE random_stamps AS SELECT time FROM cur_a order by rand();

问题是我超出了预期的锁表大小。我尝试锁定表cur_a,但在cur_a被锁定时,我无法创建另一个表。

我无法增加锁定表的大小,因为我没有对服务器的root访问权限。

1 个答案:

答案 0 :(得分:0)

我建议通过添加另一栏来做你想做的事:

CREATE TABLE random_stamps AS
    SELECT time, rand() as rand
    FROM cur_a;

CREATE INDEX idx_random_stamps_rand ON random_stamps(rand, time);

然后,当您获取数据时,可以使用order by,它将使用索引:

SELECT rs.*
FROM random_stamps rs
ORDER BY rand;