# 深度分页案例学习背景

+ 表定义：
+ 分页 SQL 查询:

```12
CREATE TABLE t1 (
 id int(11) NOT NULL AUTO_INCREMENT,
 k int(11) NOT NULL DEFAULT '0',
 c char(120) NOT NULL DEFAULT '',
 pad char(60) NOT NULL DEFAULT '',
 PRIMARY KEY (id),
 KEY k_1 (k)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

SELECT id, k FROM t1 ORDER BY id LIMIT 0,10;
...
SELECT id, k FROM t1 ORDER BY id LIMIT 10000,10;
```
------------------------------------------------------------
背景

前端页面需要展示大量数据时，为了提升用户体验以及防止一次性加载太多数据导致前端内存开销过大，开发同学一般会进行分页查询和展示，这个时候就会用到数据库的 LIMIT 语法。功能是实现了，但是并不代表就一定没有问题了，因为 LIMIT 用的方式不对，可能导致深度分页性能问题，影响用户体验和我们的数据库稳定。

具体案例

我们有一张 t1 表，表结构如下：

```
CREATE TABLE t1 (
 id int(11) NOT NULL AUTO_INCREMENT,
 k int(11) NOT NULL DEFAULT '0',
 c char(120) NOT NULL DEFAULT '',
 pad char(60) NOT NULL DEFAULT '',
 PRIMARY KEY (id),
 KEY k_1 (k)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
```

刚开始表里只有几万条数据，测试分页。

```
SELECT id,k FROM t1 ORDER BY id LIMIT 0,10;
...
SELECT id,k FROM t1 ORDER BY id LIMIT 10000,10;
```

