/*[16:05:03][ 31 ms]*/ select * from t limit 100,200
/*[16:05:06][2984 ms]*/ select * from t limit 1999900,2000000
都是100条数据,为什么后面的时间要多花这么多?
表t里面有200万条记录,CREATE TABLE `t` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`String` varchar(24) DEFAULT NULL,
`datetime` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2000001 DEFAULT CHARSET=gb2312请问:怎么优化可以使2条查询时间差不多?
/*[16:05:06][2984 ms]*/ select * from t limit 1999900,2000000
都是100条数据,为什么后面的时间要多花这么多?
表t里面有200万条记录,CREATE TABLE `t` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`String` varchar(24) DEFAULT NULL,
`datetime` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2000001 DEFAULT CHARSET=gb2312请问:怎么优化可以使2条查询时间差不多?
or
select * from t order by id desc limit 100,200
select * from t limit 100,200 10ms
select * from t order by id desc limit 100,200 20ms
select * from t limit 82760,200 521ms
ORDER BY ID DESC LIMIT .....
/*[16:59:29][2781 ms]*/ select * from t order by id asc limit 1999900,100
这2个时间差不了多少的。
inner join (SELECT id FROM jzg1 ORDER BY id desc LIMIT 1999900,100
) a1
on a1.id=a.id
速度应该有提高