现有一张100万行记录的表test,
执行以下语句后:explain select * from test limit 80000, 100;返回的rows为1000,000,rows等于总行数,也就是说明进行了全表扫描,这是怎么回事呢?我明明已经加了limit了.
执行以下语句后:explain select * from test limit 80000, 100;返回的rows为1000,000,rows等于总行数,也就是说明进行了全表扫描,这是怎么回事呢?我明明已经加了limit了.
这个结果与是否有 limit 子句无关。
当你在一条SELECT语句前放上关键词EXPLAIN,MySQL解释它将如何处理SELECT,提供有关表如何联结和以什么次序联结的信息。
或者group by id 因为where是过滤条件
还有最好做索引
它只是用来得到表的某些记录。
select * from test;
1000000 in 2.62 secsselect * from test limit 1000;
1000 rows in 0.01 secs
select * from test;
1000000 in 2.62 secsselect * from test limit 1000;
1000 rows in 0.01 secs
select * from test;