http://topic.csdn.net/u/20100413/14/ba062a92-a32d-47f2-b37c-0bd46dc2fab9.html
今天看了一个帖子,我也试了一下,他给出的链接,我看他上面显示的是180多万条数据,分页很快。
我自己测试了一下。建了一个表:CREATE TABLE `t_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) DEFAULT NULL,
`addr` varchar(30) DEFAULT NULL,
`email` varchar(30) DEFAULT NULL,
`note` varchar(3000) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1094468 DEFAULT CHARSET=utf8其中插入了100万条数据。我按照那个方式来分页查询。但是效果和直接写差不多:select * from t_test limit 999999,1;1 row in set (52.20 sec)
网上优化过的查询方法:select id,name from t_test t INNER JOIN ( select id as my_id from ( select id from t_test order by id desc limit 999999,1 ) as tmp ) as temp ON my_id=id1 row in set (58.34 sec)第二种方法甚至更慢?
请问为什么啊?
我对数据库不是很懂。。
先谢谢啦。。
今天看了一个帖子,我也试了一下,他给出的链接,我看他上面显示的是180多万条数据,分页很快。
我自己测试了一下。建了一个表:CREATE TABLE `t_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) DEFAULT NULL,
`addr` varchar(30) DEFAULT NULL,
`email` varchar(30) DEFAULT NULL,
`note` varchar(3000) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1094468 DEFAULT CHARSET=utf8其中插入了100万条数据。我按照那个方式来分页查询。但是效果和直接写差不多:select * from t_test limit 999999,1;1 row in set (52.20 sec)
网上优化过的查询方法:select id,name from t_test t INNER JOIN ( select id as my_id from ( select id from t_test order by id desc limit 999999,1 ) as tmp ) as temp ON my_id=id1 row in set (58.34 sec)第二种方法甚至更慢?
请问为什么啊?
我对数据库不是很懂。。
先谢谢啦。。
select id,name from t_test t INNER JOIN (
select id as my_id from ( select id from t_test order by id desc limit 999999,1 ) as tmp
) as temp ON my_id=id我机器的配置很垃圾。但是我发现差距太大了。我查一条数据得用差不多一分钟。