大量记录的分页避免了限制偏移

时间:2014-08-18 08:18:52

标签: mysql sql pagination

例如,我有一个很大的MySQL表(10kk记录) 表结构:

CREATE TABLE `contents` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  /* some fields hidden */
  `update_time` int(10) unsigned NOT NULL DEFAULT '0', /* INDEX */
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

update_time可以随时更改为当前的UNIX时间戳 选择查询:

SELECT ... FROM contents WHERE ... ORDER BY update_time DESC [LIMIT ...];

如何制作分页,避免LIMIT OFFSET? LIMIT OFFSET对此查询没有用,因为它读取了太多不需要的行。例如,SELECT ... FROM contents LIMIT 9000000, 100将读取~9000100行。

0 个答案:

没有答案