作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我进行查询
@Query("SELECT t FROM Product t WHERE t.isApproved = true AND t.partnerId = ?1 AND t.categories.status = ?2")
Page<Product> findAllProducts(String senderId, String status, Pageable pageable);
以及调用方法
Page<Product> products = findAllProducts...
products.getTotalElements()
它会被称为SELECT COUNT(*)
吗?
如果 1000 个用户同时调用此函数,而我的查询有 300 000 行 - 不会导致崩溃吗?
最佳答案
使用返回 Page
对象的 Pageable
参数调用查询方法会生成两个查询:
limit
和 offset
子句,用于检索数据findAllProducts
调用(而不是 getTotalElements
)导致崩溃的能力取决于您的查询/数据库 optimization .
如果您不希望您的方法调用计数查询,您可以使用 Slice
而不是 Page
作为返回参数:
Slice<Product> findAllProducts(String senderId, String status, Pageable pageable);
在这种情况下,不会调用额外的计数查询。
查看更多信息reference .
关于java - spring Pageable getTotalElements() 有多重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48521418/
如果我进行查询 @Query("SELECT t FROM Product t WHERE t.isApproved = true AND t.partnerId = ?1 AND t.categ
我是一名优秀的程序员,十分优秀!