CREATE TEMPORARY TABLE tt;
INSERT INTO tt; many times
SELECT FROM tt ORDER BY id LIMIT ?,1000;
临时表是在脚本的开头创建的,它有一个“id”auto_increment 列(和其他列)。脚本的第 1 部分使用各种 SELECT 填充表。第 2 部分应该以 1000 块为单位处理所有选定的行,但永远不会再次写入该表。
我假设这两个命令是相同的
SELECT FROM tt ORDER BY id LIMIT ?,1000;
SELECT FROM tt LIMIT ?,1000;
但这是真的吗?mySQL 是否有可能在多个 SELECT 上以不同的顺序检索行,即使表没有写在两者之间?
对临时表进行排序是阅读时最长的部分,我很乐意摆脱 ORDER BY 部分,但我不想错过任何记录,因为顺序在 SELECT LIMIT 0,1000 和 SELECT LIMIT 1000 之间发生了变化, 1000。