我有一个类似的表'tbl': ID bigint(20) - 主键,自动增量字段 1 字段 2 字段 3
该表有 600k+ 行。
- 查询:SELECT * from
tbl
ORDER by ID LIMIT 600000, 1 耗时 1.68 秒 - 查询:SELECT ID, field1 from
tbl
ORDER by ID LIMIT 600000, 1 耗时 1.69 秒 - 查询:SELECT ID from
tbl
ORDER by ID LIMIT 600000, 1 耗时 0.16 秒 - 查询:SELECT * from
tbl
WHERE ID = xxx 耗时 0.005 秒
这些查询在 phpmyadmin 中进行了测试。
结果是查询 3 和查询 4 一起返回必然的数据。查询 1 执行相同的工作,但速度要慢得多......
这看起来不适合我。谁能给点建议?
PS我很抱歉格式化..我是这个网站的新手。
新测试:
Q5 : CREATE TEMPORARY TABLE tmptable AS (SELECT ID FROM tbl
WHERE ID LIMIT 600030, 30); SELECT * FROM tbl
WHERE ID IN (SELECT ID FROM tmptable); 耗时 0.38 秒
我仍然不明白这怎么可能。我重新创建了所有索引。我还能用那个表做什么?手动删除并重新填充?:)