mysql 亿级数据量 的分页展示

大公司的 亿级数据量的分页是怎么做的 如何使做到秒级查询 不失真

  • demo 表d_big

    CREATE TABLE `d_big` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) DEFAULT NULL,
    `content` varchar(255) DEFAULT NULL,
    `type` tinyint(4) DEFAULT NULL,
    `date` datetime DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `type` (`type`,`name`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5560001 DEFAULT CHARSET=latin1;
    
  • 执行一个简单的 查询分页语句 响应时间8秒
    SELECT * FROM d_big where type = 20 ORDER BY `name` DESC limit 50000, 100 time at 8.255s

SELECT * FROM d_big as t
JOIN (select id from d_big where type = 20 ORDER BY name DESC limit 50000, 100) as b ON t.id = b.id
试下这种写法,看看效果如何??