点击上方“Java知音”,选择“置顶公众号”
技术文章第一时间送达!
本篇同步更新地址;
https://me.csdn.net/Danny_idea
推荐阅读
最近遇到了这么一个情况,数据库里面的数据由于长期的堆积,导致数据量不断的上升,而后台的系统每次进行分页查询的时候,效率都会降低很多。后来查看了一下之后,发现此时的分页原理主要是采用了传统的物理分页 limit n,m 的方式。
为了方便演示,我特意创建了以下几张表进行实例演练:
表分别是商品表,用户表,用户选购商品记录表:
goods user g_u
三张表的关系比较简单,user的id和goods里面的id合并生成关联数据,存储在了g_u里面。三张数据库表的设计如下所示:
CREATE TABLE `goods` ( `id` int(11) NOT NULL, `name` varchar(60) COLLATE utf8_unicode_ci NOT NULL, `price` decimal(6,1) NOT NULL, `des` varchar(40) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(20) COLLATE utf8_unicode_ci NOT NULL, `age` tinyint(3) NOT NULL, `sex` tinyint(1) NOT NULL COMMENT '年龄', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=100001 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ciCREATE TABLE `g_u` ( `id` int(11) NOT NULL AUTO_INCREMENT, `g_id` int(11) NOT NULL COMMENT '商品id', `u_id` int(11) NOT NULL COMMENT '用户id', PRIMARY KEY (`id`)) ENGINE=