面试题答案
一键面试- 优化思路:
- 常规的分页查询
LIMIT
在偏移量很大(如第1000页,偏移量为99900)时性能会急剧下降,因为数据库需要从第一条记录开始扫描到偏移量位置,再取指定数量的记录。 - 可以利用覆盖索引和上一页的最后一条记录的主键值来优化。先通过覆盖索引快速定位到上一页最后一条记录的主键,然后基于此主键继续往后查询,避免全表扫描大量数据。
- 常规的分页查询
- 优化后的SQL语句:
假设上一页最后一条记录的主键值为
last_id
,则优化后的SQL如下:
SELECT id, name, age
FROM your_table_name
WHERE age > 30 AND id > last_id
ORDER BY id
LIMIT 100;
这里your_table_name
是实际的数据表名。通过id > last_id
条件,利用主键索引快速定位后续数据,ORDER BY id
确保数据顺序,LIMIT 100
限制返回的记录数。