Spring Data -如果使用order by, Slice比Page快吗?



如果使用org.springframework.data.domain.Slice而不是org.springframework.data.domain.Page返回可分页结果通常更快-因为Slice不调用count(*) -如果查询也执行order by,它还会更快吗?

换句话说,第一个例子比较慢

第一个使用Page的例子:

Pageable sortedByName = PageRequest.of(0, 3, Sort.by("name"));
Page<Employee> firstEmployeePage = employeeRepository.findAll(sortedByName);

第二个使用Slice的例子:

Pageable sortedByName = PageRequest.of(0, 3, Sort.by("name"));
Slice<Employee> firstEmployeePage = employeeRepository.findAll(sortedByName);

执行Page几乎与查询Slice和进行计数查询相同。唯一的区别是Slice将使用LIMIT (n+1)。有了这些知识,你应该明白切片执行总是更快,因为计数查询通常必须"访问所有行"。通过一些方法确定计数。

最新更新