用于cassandra的Datastax的java驱动程序提供了Accessor。请参阅here
参考下面的示例,他们是分批进行分页和获取记录还是存在查询超时的风险?
Statement stmt = new SimpleStatement("SELECT * FROM user");
stmt.setFetchSize(24);
ResultSet rs = session.execute(stmt);
当我说分页时,他们会在内部做类似下面的事情
{{1}}
答案 0 :(得分:5)
是的,幕后使用了提取大小。驱动程序将根据需要自动为您页面。
您可能希望通过@QueryParameters设置抓取大小。此时的默认值为5k,请参阅DEFAULT_FETCH_SIZE。
答案 1 :(得分:1)
以下是我如何在Accessor中的@QueryParameters注释中使用fetchSize的示例:
@Accessor
public interface UserAccessor {
@Query("SELECT * FROM users")
@QueryParameters(fetchSize = 1000)
Result<User> getAllUsers();
}