一页取5000~10000条数据 查询很慢
1)加索引
2)设置fetchSize
@Select("<script> SELECT * from A \n" +
"</script>")
@Options(fetchSize = 3000, resultSetType = ResultSetType.FORWARD_ONLY)
IPage<Object> selectPage(IPage pageInfo,@Param("idList") List<Long> idList);
让我解释一下这些选项的含义:
-
fetchSize = 1000: 这个选项指定了在从数据库中检索数据时一次性取回的行数。在这种情况下,设置为 1000,意味着每次从数据库中取回的数据行数为 1000。通过设置合适的
fetchSize
,可以在一定程度上优化数据库的性能和内存使用情况。 -
resultSetType = ResultSetType.FORWARD_ONLY: 这个选项指定了结果集的类型。
FORWARD_ONLY
表示结果集只能向前遍历,不能向后滚动。这种类型的结果集对于只需要一次性遍历结果集的情况来说是最有效的,因为它不需要额外的资源来支持向后滚动。 -
resultSetConcurrency = ResultSetConcurrency.READ_ONLY: 这个选项指定了结果集的并发性。
READ_ONLY
表示结果集是只读的,不能用于更新数据库。这种设置适用于只需要查询结果而不需要更新数据的情况。