MariaDB 扩展了 Limit 语法

1.传统Limit

代码语言:sql复制
SELECT * FROM staffs WHERE age > 35 LIMIT 10;
  • 会持续扫描表直到找到10条符合条件的记录
  • 如果表有1000万行,可能需要扫描到最后一行
  • 消耗资源大,执行时间长

2.使用 LIMIT ... ROWS EXAMINED 的查询

代码语言:sql复制
SELECT * FROM staffs
WHERE age > 35
LIMIT 10 ROWS EXAMINED 1000;
  • 只扫描最多1000行就停止
  • 如果1000行内找到10条记录,提前返回
  • 如果1000行内没找到10条记录,也会停止并返回已找到的记录
  • 保护数据库资源,避免全表扫描

优势

你已经预判到公司里超过35岁的程序员屈指可数,最多扫描1000行就可以查出结果了,而不是整个表。这可以显著减少 CPU 和 I/O 资源的消耗。