关于order by limit主键优化问题--大神请进
建了一张表,主键为自增id,name可以为空,插入6条数据
第一行查询全表扫描,这没有问题

加了order by id limit 3之后居然只扫描了3行

我的问题是,扫描的时候limit 3,而这里只有2条null应该也是从6开始扫描到1才停止呀,mysql究竟是怎么对这条SQL进行优化的?求大神解答
create table t(id int unsigned not null primary key auto_increment,name varchar(20));
insert into t select 0,'1';
insert into t select 0,null;
insert into t select 0,'2';
insert into t select 0,'3';
insert into t select 0,null;
insert into t select 0,'4';
第一行查询全表扫描,这没有问题

加了order by id limit 3之后居然只扫描了3行

我的问题是,扫描的时候limit 3,而这里只有2条null应该也是从6开始扫描到1才停止呀,mysql究竟是怎么对这条SQL进行优化的?求大神解答
...全文
相关推荐
mysql order by limit 的一个坑.docx
mysql order by limit 的一个坑.docx
MySQL查询优化:连接查询排序limit(join、order by、limit语句)介绍
两张表连接查询并limit,SQL效率很高,但是加上order by以后,语句的执行时间变的巨长,效率巨低,接下来为大家介绍下连接查询排序limit
MYSQL随机抽取查询 MySQL Order By Rand()效率问题
要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。 但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,仍然可以通过ORDER BY RAND()来实现随机。 但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上。查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低。 代
MySQL百万级数据量分页查询方法及其优化建议
主要介绍了MySQL百万级数据量分页查询方法及其优化建议,帮助大家更好的处理MySQL数据库,感兴趣的朋友可以了解下
MySQL用limit方式实现分页的实例方法
在本篇文章中小编给大家整理了一篇关于MySQL用limit方式实现分页的实例方法,有需要的朋友们可以参考学习下。


