我想在其中创建一些临时的行,以便在程序中进行一些操作。代码非常简单:
CREATE TEMPORARY TABLE tmp_stack ENGINE=MEMORY AS (
SELECT users.id AS to_user_id, users.rating AS rating, users.lat AS lat, users.lng AS lng
FROM users USE KEY (generating_stack)
WHERE
users.lat BETWEEN 53.8866 AND 54.8286 AND
users.lng BETWEEN 17.8999 AND 19.3999
LIMIT 10
);
它有效,但我的tmp_stack表还有其他行感谢CREATE TEMPORARY查询中的SELECT!看看:
CREATE TEMPORARY中的唯一查询:
发生了什么事?我不能在这里使用ORDER BY因为它的工作速度慢了几倍。
答案 0 :(得分:2)
如果没有ORDER BY,您将以“随机”顺序获取记录。通过选择两组不同的随机“有序”记录中的前10个,当然每次结果都可能不同。
我不能在这里使用ORDER BY因为它的工作速度慢了几倍。
但是如果你想要一致的结果,你必须。
(如果“太慢”,请检查是否设置了正确的索引。)