我有一个相当大的桌子,有36米的行。我想创建另一个包含随机顺序列之一的表。
CREATE TABLE random_stamps AS SELECT time FROM cur_a order by rand();
问题是我超出了预期的锁表大小。我尝试锁定表cur_a
,但在cur_a
被锁定时,我无法创建另一个表。
我无法增加锁定表的大小,因为我没有对服务器的root访问权限。
答案 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;